mysql 查詢注意點

2021-10-02 13:14:23 字數 1022 閱讀 9164

具體的優化方法:

exist和in:

如果主查詢的資料集大,使用in,    select tname from teacher where tid in(x,y,z);

如果子查詢的資料集大,使用exist,select tname from teacher where exist(select * from teacher);

order by:可能會出現using filesort

選擇單路排序,增加buffer大小  set max_length_sort_size = 

避免使用select * ...

復合索引不要跨列使用,避免出現using filesort

保證全部的排序字段排序的一致性,全公升序或者降序

sql慢查詢日誌:用於記錄sql中查詢時間超過閾值的sql語句,預設是記錄超過10s的日誌

這個開關預設是關閉的。

檢查開關是否開啟:show variables like '%slow_query_log%';

臨時開啟:set global slow_query_log = 1;

永久開啟:在mysql配置檔案中開啟

慢查詢閾值:

show variables like '%loog_query_time%';

查詢被記錄的慢查詢語句:

show global status like '%slow_queries%';

檢視記錄的慢日誌檔案:

cat /var/lib/mysql/localhost-slow.log

mysqldumpslow:使用這個工具來查詢慢sql,可通過mysqldumpslow --help來檢視使用方法

在慢查詢日誌中獲取返回記錄最多的三個sql

mysqldumpslow -s r -t 3 /var/lib/mysql/localhost-slow.log

在慢查詢日誌中獲取訪問次數最多的三個sql

mysqldumpslow -s c -t 3 /var/lib/mysql/localhost-slow.log

mysql 注意 mysql 注意點

mysql 優化 每個innodb 表都要有乙個主鍵 限制表上索引的數量,避免建立重複和冗餘索引 注意合理選擇復合索引鍵值的順序 優先選擇符合儲存需要的最小的資料型別 varchar n 中的n 代表的是字元數,而不是位元組數 使用utf8 儲存漢字 varchar 255 765 個位元組 過大的...

mysql特別點 Mysql 特別注意點!

初始環境 create table product id int unsigned not null auto increment,amount int unsigned default null primary key id engine innodb charset utf8 insert in...

mysql查詢注意 mysql中sql查詢使用注意

1.注意desc關鍵字僅適用於在它前面的列名 birth 不影響species列的排序順序。select name,species,birth from petorder by species,birth desc desc只影響birth.先按照species公升序列排序,species值相同的再...