- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
背景
我需要在 MySQL
服务器数据库(在 10k-200k 记录的大小范围内)上实现 FULLTEXT
搜索。
到目前为止,数据库搜索是基于简单的实现(LIKE
查询),这显然是低效的,更不用说不可配置等了。
考虑了两种选择:
启用 MySQL
的 native FULLTEXT(需要添加一个或多个 MyISAM
表 - 现在整个数据库都是 InnoDB
) ;
正在安装 Sphinx
.
(我们使用 PHP 5.2,升级不是一个选项,所以 InnoDB FULLTEXT 在这里是不可能的。)
问题
有性能方面的考虑。可以理解的是,以任何一种方式实现 FULLTEXT
都会消耗更多的磁盘空间并给 CPU 带来更多的负担。
目标是找出多少。两种解决方案都将相互进行基准测试(当然还有现状)。我需要设置并执行这些测试。
我的做法是:
用真实数据(例如 10 万行)填充数据库;
衡量建立索引所需的时间;
通过插入/更新几千行来模拟重建索引的需要 - 再次分析所需的时间以及 CPU 和 RAM 使用情况;
在 bool 和自然语言模式下使用一组短短语和长短语测试查询速度。
到目前为止相当简单,但是任何建议都将不胜感激,因为我更像是桌面/客户端应用程序开发人员,而且我已经走出了自己的舒适区。
问题
我错过了什么?此测试场景是否可能产生有意义的结果?
如果不是 cron 脚本,监视服务器 CPU 和 RAM 使用情况的正确方法是什么?
我知道这是一个悬而未决的问题,但我希望它不会被关闭。
最佳答案
这种情况看起来不错,我只建议在 sphinx 中实现增量索引(仅索引自上次索引以来的变化)。
在监控方面,您可以设置 cacti 或 munin 工具,但如果您打算仅将它们用于此测试,也许 dstat 就足够了。
关于php - 对全文性能进行基准测试——如何进行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13380695/
我是一名优秀的程序员,十分优秀!