效能最佳化——mysql資料庫,效能最佳化mysql

來源:互聯網
上載者:User

效能最佳化——mysql資料庫,效能最佳化mysql

一 mysql常用命令

1. 開啟日誌

1) show global variables like "%genera%";

2)set global general_log=on;

3)set global general_log=off;


2. mysql如果開了set autocommit=0,那麼所有的語句一定是在一個事務裡


3. show engine innodb status 

1) http://imysql.cn/2008_05_22_walk_through_show_innodb_status



二 典型問題分析

1. 資料庫等待鎖逾時 Lock wait timeout exceeded; try restarting transaction

1). 調整語句執行順序,減少鎖等待時間:涉及到的資料庫操作比較多,事務比較大,把這些鎖逾時的表(多個事務並發可能取同一行的表,就會存在鎖等待的情況)放在事務的最後面,執行完就釋放鎖了,減少其他事務的鎖等待時間
2).切分事務:
3).語句合并,減少資料庫網路互動:多條語句,並在一起,使用multiQuery,一次查詢更新  


2. DeadLock問題


3. 查看事務一直沒提交的問題

mysql> show engine innodb status \G   

查詢active 的事務id



MySQL資料庫性可以最佳化有什技巧?

1.儲存引擎的選擇如果資料表需要交易處理,應該考慮使用InnoDB,因為它完全符合ACID特性。如果不需要交易處理,使用預設儲存引擎MyISAM是比較明智的。並且不要嘗試同時使用這兩個儲存引擎。思考一下:在一個交易處理中,一些資料表使用InnoDB,而其餘的使用MyISAM.結果呢?整個subject將被取消,只有那些在交易處理中的被帶回到原始狀態,其餘的被提交的資料轉存,這將導致整個資料庫的衝突。然而存在一個簡單的方法可以同時利用兩個儲存引擎的優勢。目前大多數MySQL套件中包括InnoDB、編譯器和鏈表,但如果你選擇MyISAM,你仍然可以單獨下載InnoDB,並把它作為一個外掛程式。很簡單的方法,不是嗎?
2.計數問題如果資料表採用的儲存引擎支援交易處理(如InnoDB),你就不應使用COUNT(*)計算資料表中的行數。這是因為在產品類資料庫使用COUNT(*),最多返回一個近似值,因為在某個特定時間,總有一些交易處理正在運行。如果使用COUNT(*)顯然會產生bug,出現這種錯誤結果。
3.反覆測試查詢查詢最棘手的問題並不是無論怎樣小心總會出現錯誤,並導致bug出現。恰恰相反,問題是在大多數情況下bug出現時,應用程式或資料庫已經上線。的確不存在針對該問題切實可行的解決方案,除非將測試樣本在應用程式或資料庫上運行。任何資料庫查詢只有經過上千個記錄的大量樣本測試,才能被認可。
4.避免全表掃描通常情況下,如果MySQL(或者其他關聯式資料庫模型)需要在資料表中搜尋或掃描任意特定記錄時,就會用到全表掃描。此外,通常最簡單的方法是使用索引表,以解決全表掃描引起的低效能問題。然而,正如我們在隨後的問題中看到的,這存在錯誤部分。
5.使用“EXPLAIN”進行查詢當需要調試時,EXPLAIN是一個很好的命令,下面將對EXPLAIN進行深入探討。
參考資料:hi.baidu.com/...3.html
 
怎實現 MySQL資料庫性可以最佳化? 舉例說明

在mysql安裝目錄下,比如: D:\Program Files\MySQL\MySQL Server 5.1
裡面有幾個設定檔,只要修改名字成為 my.ini 即可,比如:
my-huge.ini 巨型伺服器
my-large.ini 大型
my-medium.ini 中型
my-small.ini 小型
備份原來的,並重新命名,重新啟動即可。其中,[mysqld] 這一節是mysql伺服器的配置資訊。
 

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.