mysqlslap是mysql自帶的基準測試工具,優勢:查詢數據,語法簡單,靈活容易使用.該工具能夠模擬多個客戶端同時併發的向服務器發出查詢更新,給出了性能測試數據並且提供了多種引擎的性能比較.mysqlslap爲mysql性能優化先後提供了直觀的驗證依據。mysql
能夠模擬出大量客戶端同時操做數據庫的狀況,經過結果信息來了解數據庫的性能情況。算法
mysqlslap 的一個主要工做場景就是對數據庫服務器作基準測試。sql
例如咱們拿到了一臺服務器,準備作爲數據庫服務器,那麼這臺服務器的硬件資源可以支持多大的訪問壓力呢?優化了操做系統的內核參數後,是否提高了性能?調整了Mysql配置參數後,對性能有多少影響?……數據庫
經過一系列的調優工做,配合基準測試,就能夠把這臺服務器調整到最佳狀態,也掌握了健康狀態下的性能指標性能優化
之後在實際運行過程當中,當監控的數據接近了基準指標時,說明數據庫服務器快要滿負荷了,須要分析是數據庫結構設計、SQL語句這類用法問題,仍是硬件資源的確不夠了,而後進行相應的處理。服務器
數據庫服務器也可能須要硬件升級,升級以後也須要進行基準測試,和以前的測試結果對比,確保升級後的性能是提高的,防止不恰當的升級或者錯誤的配置引發性能降低併發
下面看一下如何使用 mysqlslap。工具
經常使用的選項
--concurrency 併發數量,多個能夠用逗號隔開
--engines 要測試的引擎,能夠有多個,用分隔符隔開,如--engines=myisam,innodb
--iterations 要運行這些測試多少次
--auto-generate-sql 用系統本身生成的SQL腳原本測試
--auto-generate-sql-load-type 要測試的是讀仍是寫仍是二者混合的(read,write,update,mixed)
--number-of-queries 總共要運行多少次查詢。每一個客戶運行的查詢數量能夠用查詢總數/併發數來計算
--debug-info 額外輸出CPU以及內存的相關信息
--number-int-cols 建立測試表的int型字段數量
--number-char-cols 建立測試表的chat型字段數量
--create-schema 測試的database
--query 本身的SQL 腳本執行測試
--only-print 若是隻想打印看看SQL語句是什麼,能夠用這個選項性能
測試語句:測試
mysqlslap -hlocalhost -uroot -p123456 -P3306 --concurrency=500 --iterations=1 --auto-generate-sql --auto-generate-sql-load-type=mixed --auto-generate-sql-add-autoincrement --engine=innodb --number-of-queries=500
數據庫集羣
pxc 數據讀寫強一致性,適合存儲高價值重要數據。
單表數據量超過2千萬數據性能 處理不方便。
訂單 錢有關的 都要強一致性
數據切分 中間件mycat
跨平臺。
犧牲性能 保證數據的一致性
日誌須要保存到數據庫中
大數據中算法:協調過濾算法(用戶產生的日誌數據)