背景
我需要FULLTEXT
在服务器数据库上实现搜索MySQL
(在 10k-200k 记录的大小范围内)。
到目前为止,数据库搜索是基于朴素的实现(LIKE
查询),这显然是低效的,更不用说不可配置等了。
考虑了两种选择:
启用
MySQL
的原生 FULLTEXT (需要添加一个或多个MyISAM
表 - 整个数据库InnoDB
现在);安装
Sphinx
.
(我们使用 PHP 5.2 并且升级不是一个选项,所以 InnoDB FULLTEXT 在这里是不可能的。)
问题
有性能方面的考虑。可以理解的是,实现FULLTEXT
任何一种方式都会占用更多的磁盘空间,并给 CPU 带来更多的负担。
目标是找出多少。两种解决方案都将相互进行基准测试(当然还有现状)。我需要设置并执行这些测试。
我会采取的方法是:
用真实数据填充数据库(比如 100k 行);
衡量建立索引所需的时间;
通过插入/更新数千行来模拟重新索引的需要 - 再次分析所需的时间以及 CPU 和 RAM 使用情况;
在布尔和自然语言模式下使用一组短短语和长短语测试查询速度。
到目前为止相当简单,但任何建议都将不胜感激,因为我更多的是桌面/客户端应用程序开发人员,而且我已经走出了自己的舒适区。
问题
我错过了什么?这个测试场景是否可能产生有意义的结果?
如果不是 cron 脚本,那么监控服务器 CPU 和 RAM 使用情况的正确方法是什么?
我知道这是一个悬而未决的问题,但我希望它不会被关闭。