① 爲查詢緩存優化查詢html
② EXPLAIN 咱們的SELECT查詢(能夠查看執行的行數)mysql
③ 當只要一行數據時使用LIMIT 1sql
④ 爲搜索字段創建索引緩存
⑤ 在Join表的時候使用至關類型的列,並將其索引性能
⑥ 千萬不要 ORDER BY RAND ()優化
⑦ 避免SELECT *spa
⑧ 永遠爲每張表設置一個ID線程
⑨ 能夠使用ENUM 而不要VARCHARhtm
⑩ 儘量的使用NOT NULLblog
⑪ 固定長度的表會更快
⑫ 垂直分割
⑬ 拆分打的DELETE或INSERT語句
⑭ 越小的列會越快
⑮ 選擇正確的存儲引擎
⑯ 當心 "永久連接"
Explain 性能分析:
explain顯示了mysql如何使用索引來處理select語句以及鏈接表。能夠幫助選擇更好的索引和寫出更優化的查詢語句
possible_keys:查詢可能使用到的索引都會在這裏列出來
key:查詢真正使用到的索引,select_type爲index_merge時,這裏可能出現兩個以上的索引,其餘的select_type這裏只會出現一個。
參考:http://www.javashuo.com/article/p-xnalqwrc-ho.html
show processlist命令:
show processlist和show full processlist
processlist命令的輸出結果顯示了有哪些線程在運行,不只能夠查看當前全部的鏈接數,還能夠查看當前的鏈接狀態幫助識別出有問題的查詢語句等。
若是是root賬號,能看到全部用戶的當前鏈接。若是是其餘普通賬號,則只能看到本身佔用的鏈接。showprocesslist只能列出當前100條。若是想所有列出,能夠使用SHOW FULL PROCESSLIST命令
show processlist
KILL thread_id語句終止一個線程
再show processlist