您好,欢迎访问一九零五行业门户网

如何使用MySQL执行每秒75万次的NOSQL查询

随着web应用变得越来越复杂,单纯的mysql + memcached似乎已满足不了数据存储的需求,一些企业纷纷转向nosql方案,比如mongodb、
随着web应用变得越来越复杂,单纯的mysql + memcached似乎已满足不了数据存储的需求,一些企业纷纷转向nosql方案,比如mongodb、couchdb、 tokyocabinet/tyrant、cassandra等。在他们看来,如果数据访问模式不是很复杂,用不上sql数据库。然而,dena公司截然相反,他们选择了 only mysql 的方案,且获得了远远超越nosql的性能。
该公司仍在使用mysql + memcached,memcached主要用于前端cache,比如预处理的html、计数和摘要信息等,但数据行并不放在cache里,而是直接从数据库查,因为普通的服务器就可以获得75万次每秒的查询,当前又有哪种nosql可以做到呢?
可以使用sysbench、super-smack、mysqlslap等工具测试mysql性能,比如
[matsunobu@host ~]$ mysqlslap --query=select user_name,..
from test.user where user_id=1 \
--number-of-queries=10000000 --concurrency=30 --host=xxx -uroot
然后使用如下命令得到每秒读取的行数,
[matsunobu@host ~]$ mysqladmin extended-status -i 1 -r -uroot \
| grep -e com_select
...
| com_select | 107069 |
| com_select | 108873 |
| com_select | 108921 |
| com_select | 109511 |
| com_select | 108084 |
| com_select | 108483 |
| com_select | 108115 |
...
可以使用vmstat和oprofile等工具诊断系统瓶颈。
mysql cluster因为性能问题一直受人批判,,为改善这种情况引入了ndbapi,使得性能提升了n倍。但对于非集群情况怎么优化呢?通过mysql瓶颈分 析,发现大部分时间花费在sql解析和表操作上,如果绕过这层操作直接存取存储引擎,可大大提升性能,mysql的插件handlersocket正是由 此获得了每秒75万次查询操作的性能,这个评测数据无疑会颠覆整个nosql世界。另外,handlersocket支持批量读取和写操作,这进一步提升 了它的性能。
其它类似信息

推荐信息