慢sql查詢?nèi)罩?mysql優(yōu)化教程?
mysql優(yōu)化教程?1、對SQL語句、索引、表結(jié)構(gòu)等進(jìn)行優(yōu)化。2、開啟查詢緩存,Query Cache緩存了SELECT查詢及其結(jié)果數(shù)據(jù)集,當(dāng)執(zhí)行一個同樣的SELECT查詢時,MySQL會從內(nèi)存中直接
mysql優(yōu)化教程?
1、對SQL語句、索引、表結(jié)構(gòu)等進(jìn)行優(yōu)化。
2、開啟查詢緩存,Query Cache緩存了SELECT查詢及其結(jié)果數(shù)據(jù)集,當(dāng)執(zhí)行一個同樣的SELECT查詢時,MySQL會從內(nèi)存中直接取出結(jié)果,加快了查詢執(zhí)行速度、減小了數(shù)據(jù)庫的壓力。執(zhí)行SHOW VARIABLES LIKE "have_query_cache"可以查看MySQL查詢緩存是否打開,開啟查詢緩存只需配置my.cnf文件即可,具體如下:
query_cache_type = 1
query_cache_size = 128M
query_cache_limit = 1M
保存好后重啟MySQL。
3、選用InnoDB存儲引擎,MySQL常用存儲引擎是MyISAM和InnoDB,二者區(qū)別如下:
MyISAM
查詢速度快;
支持表級鎖,在上鎖期間表上不能進(jìn)行其他操作;
支持全文檢索;
支持?jǐn)?shù)據(jù)壓縮、自我復(fù)制、查詢緩存、數(shù)據(jù)加密;
不支持外鍵;
不支持事務(wù),所以也就沒有COMMIT和ROLLBACK操作;
不支持集群數(shù)據(jù)庫。
InnoDB
支持行級鎖;
支持外鍵,對外鍵約束強(qiáng)制;
支持事務(wù),可執(zhí)行COMMIT和ROLLBACK操作;
支持?jǐn)?shù)據(jù)壓縮、自我復(fù)制、查詢緩存、數(shù)據(jù)加密;
可用在集群環(huán)境,但并不完全支持。InnoDB表可以轉(zhuǎn)換為NDB存儲引擎,這樣就能用在集群環(huán)境。
如何開啟MySQL慢查詢?nèi)罩荆?/h2>
shell>mysql -u root -p #輸入密碼 mysql>show variables like "%slow%" #檢查下面幾條參數(shù) slow_query_log #這個是表示的slow log有沒開 slow_query_log_file #這個是slow log的地址 #然后直接vim 那個文件就可以了
對MySQL慢查詢?nèi)罩具M(jìn)行分析的基本教程?
開啟慢查詢?nèi)罩?/p>
mysql>setglobalslow_query_log=1
定義時間SQL查詢的超時時間
mysql>setgloballong_query_time=0.005
查看慢查詢?nèi)罩镜谋4媛窂?/p>
mysql>showglobalvariableslike"slow_query_log_file"
查看慢查詢
cat/var/log/mysql/slow.log