2009-01-12 113 views
0

我有一个相当简单的查询大约每秒300K +条目,这听起来合理,但其它方法保存的数据的质量的解码(例如,阵列的反序列化)MySQL的性能瓶颈

SELECT col1 FROM table1 

该命令输出在极限工作硬盘驱动器的功能,例如40-50 MB/s,而MySQL则为2-3 MB/s。

我看到我的MySQL机器是CPU绑定的,我认为必须有一个更简单的解决方案来继续使用MySQL并享受双倍数字速度吞吐量(当然,查询复杂度相同)在硬件上花费一笔钱

任何想法如何摆脱服务器,使这种情况发生?


编辑:我用的是MyISAM引擎


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

+0

为什么要将序列化数据放入数据库?它看起来像你没有过滤,搜索,排序,加入或做任何其他使用数据库的东西。除非您遗漏了一些细节,否则最好的解决方案可能是坚持使用平面文件导入。 – 2009-01-12 17:51:05

回答

3

商店内存中的数据库。使它真的很快!

4

您是否正在为您的问题使用正确的工具? MySQL是一个关系数据库。它擅长涉及列之间关系的查询。您所描述的查询类型没有利用数据库的优点,但仍支付其开销。 MySQL不保证速度 - 它以合理的速度启用持久存储和复杂的查询功能。也许你需要一个不同的数据架构。或者,如果您描述的查询不具有代表性,则此处为a book about mysql performancethe respective blog

1

数据库更经常地使机器I/O绑定。

如果你的机器是CPU绑定的,那么我认为数据库不是你的瓶颈。