【问题标题】:MySQL performance bottlenecksMySQL 性能瓶颈
【发布时间】:2009-01-12 17:35:42
【问题描述】:

我有一个相当简单的查询

SELECT col1 FROM table1

此命令每秒输出大约 300K+ 个条目,这听起来很合理,但其他用于对保存的数据进行大规模解码的方法(例如阵列反序列化)在硬盘驱动器启用的极限(即 40-50 MB/s)下工作,相比之下使用 MySQL 时为 2-3 MB/s。

我发现我的 MySQL 机器受 CPU 限制,我认为必须有一个更简单的解决方案才能继续使用 MySQL 并享受双位数的速度吞吐量(当然,对于相同数量级的复杂查询)而无需花费硬件上的财富

任何想法如何摆弄服务器来实现这一点?


编辑:我使用 MyISAM 引擎


编辑:服务器已经是一台不错的机器,所以我不想在这里捏我的便士......

【问题讨论】:

  • 为什么首先将序列化数据放入数据库?看起来你没有过滤、搜索、排序、加入或做任何其他使用数据库的事情。除非您遗漏了一些细节,否则最好的解决方案可能是坚持使用平面文件导入。

标签: mysql performance


【解决方案1】:

您是否使用正确的工具来解决您的问题? MySQL 是一个关系型数据库。它擅长涉及列之间关系的查询。您描述的查询类型没有利用数据库的优点,并且仍然支付它的开销。 MySQL 不保证速度——它以合理的速度启用具有复杂查询能力的持久存储。也许您需要不同的数据架构。或者,如果您描述的查询不具有代表性,这里是a book about mysql performancethe respective blog

【讨论】:

    【解决方案2】:

    将数据库存储在内存中。真的很快!

    【讨论】:

      【解决方案3】:

      数据库更经常使机器 I/O 受限。

      如果您的机器受 CPU 限制,那么我认为数据库不是您的瓶颈。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-06-12
        • 2015-07-27
        • 1970-01-01
        • 1970-01-01
        • 2018-07-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多