我正在开发一个 Web 应用程序,并且在我的开发环境和实际环境中遇到了 MySQL 查找速度之间的巨大性能差异。
数据库: 2.5GB,三张表(一张表有2700万条记录)。全文索引和搜索。所有内容都在需要的地方建立了索引。数据库包含英国所有地址的记录。
开发服务器: 使用两年的三星 i5 Ultrabook。运行 XAMPP 的 Windows 8。单SSD。大多数查找时间不到 200 毫秒,故意给系统施加压力,导致最大查找时间为 5 秒。
实时服务器: “混合”VPS(每台服务器最多 8 个节点)。硬件规格为“双 Intel Xeon 处理器,至少 8 个 CPU 内核、24GB RAM、带有 15K SAS 驱动器的 Raid 10 驱动器”。大多数查找大约需要 3-5 秒,压力测试导致查找时间为 30 秒。
我对开发服务器上的数据库性能感到满意,但我确实需要生产服务器来匹配或更好。
在我为应用程序购买专用盒子之前,根据您的经验,瓶颈可能是磁盘 I/O 还是 CPU 时间?
只是发布一个答案作为记录:
我在带有 RAID-ed SSD 的 VPS 上尝试了该应用程序。区别在于白天和黑夜,查找现在甚至比我的开发机器更快。这是默认的 MySQL 安装,没有对缓存、最大内存使用量和其他参数进行任何编辑。