回覆列表
  • 1 # 使用者834195712159

    隨著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支援批次讀取和寫操作,這進一步提升 了它的效能。

  • 中秋節和大豐收的關聯?
  • 光源發光效率標準?