gpt4 book ai didi

php - 对全文性能进行基准测试——如何进行

转载 作者:可可西里 更新时间:2023-11-01 08:20:38 25 4
gpt4 key购买 nike

背景

我需要在 MySQL 服务器数据库(在 10k-200k 记录的大小范围内)上实现 FULLTEXT 搜索。

到目前为止,数据库搜索是基于简单的实现(LIKE 查询),这显然是低效的,更不用说不可配置等了。

考虑了两种选择:

  1. 启用 MySQL 的 native FULLTEXT(需要添加一个或多个 MyISAM 表 - 现在整个数据库都是 InnoDB) ;

  2. 正在安装 Sphinx .

(我们使用 PHP 5.2,升级不是一个选项,所以 InnoDB FULLTEXT 在这里是不可能的。)

问题

有性能方面的考虑。可以理解的是,以任何一种方式实现 FULLTEXT 都会消耗更多的磁盘空间并给 CPU 带来更多的负担。

目标是找出多少。两种解决方案都将相互进行基准测试(当然还有现状)。我需要设置并执行这些测试。

我的做法是:

  1. 用真实数据(例如 10 万行)填充数据库;

  2. 衡量建立索引所需的时间;

  3. 通过插入/更新几千行来模拟重建索引的需要 - 再次分析所需的时间以及 CPU 和 RAM 使用情况;

  4. 在 bool 和自然语言模式下使用一组短短语和长短语测试查询速度。

到目前为止相当简单,但是任何建议都将不胜感激,因为我更像是桌面/客户端应用程序开发人员,而且我已经走出了自己的舒适区。

问题

  1. 我错过了什么?此测试场景是否可能产生有意义的结果?

  2. 如果不是 cron 脚本,监视服务器 CPU 和 RAM 使用情况的正确方法是什么?

我知道这是一个悬而未决的问题,但我希望它不会被关闭。

最佳答案

这种情况看起来不错,我只建议在 sphinx 中实现增量索引(仅索引自上次索引以来的变化)。

在监控方面,您可以设置 cacti 或 munin 工具,但如果您打算仅将它们用于此测试,也许 dstat 就足够了。

关于php - 对全文性能进行基准测试——如何进行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13380695/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com