前程無憂網(wǎng)廣州網(wǎng)站建設(shè)類崗位,網(wǎng)絡(luò)營銷論文,網(wǎng)站怎么做可留言功能,wordpress優(yōu)勢慢查詢排查優(yōu)化 排查 slow_query_log設(shè)置為on,就會記錄慢查詢sql;long_query_time可以設(shè)置慢查詢sql的閾值時間;slow_query_log_file表示記錄慢查詢sql的日志路徑。即我們可以通過打開記錄慢查詢的開關(guān),設(shè)置慢查詢的時間閾值&…- 慢查詢排查優(yōu)化
- 排查
slow_query_log設(shè)置為on,就會記錄慢查詢sql;long_query_time可以設(shè)置慢查詢sql的閾值時間;slow_query_log_file表示記錄慢查詢sql的日志路徑。即我們可以通過打開記錄慢查詢的開關(guān),設(shè)置慢查詢的時間閾值,查看日志就能看到慢查詢的執(zhí)行sql。然后使用explain查看sql的執(zhí)行計劃,主要看type字段判斷是否走索引了。 - 優(yōu)化
- 子查詢優(yōu)化,使用join代替in,子查詢的話mysql會建立臨時表,再把臨時表銷毀,效率會很低
- 字段優(yōu)化,盡量使用整形,不要設(shè)置太長,避免between、like、<、>范圍查詢導(dǎo)致的全表查詢
- 經(jīng)常使用的字段創(chuàng)建索引
- 事先準(zhǔn)備好報表,避免查詢時計算數(shù)據(jù)導(dǎo)致的性能下降
- 分庫分表
- 歷史數(shù)據(jù)遷移
- 使用redis緩存數(shù)據(jù),減少查詢次數(shù)
- 聚集索引和非聚集索引
- 聚集索引
聚集索引指的就是主鍵索引,索引和數(shù)據(jù)是存放在一起的,故名聚集。mysql的數(shù)據(jù)在磁盤上是以頁的形式進(jìn)行存儲的,每頁中的數(shù)據(jù)按主鍵的值從小到大進(jìn)行排列,因此可以通過目錄頁對數(shù)據(jù)查詢進(jìn)行維護(hù),每個目錄都記錄了數(shù)據(jù)的頁數(shù)以及該頁的最小鍵值。在查詢時根據(jù)先可以目錄項定位要查詢的數(shù)據(jù)所在的頁數(shù),再到數(shù)據(jù)頁中按主鍵值通過二分法進(jìn)行查詢。 - 非聚集索引
非聚集索引的數(shù)據(jù)結(jié)構(gòu)與聚集索引類似,不過在數(shù)據(jù)項中存儲的是主鍵,查詢的時候先通過非聚集索引查詢得到主鍵,再通過主鍵回表查詢具體的數(shù)據(jù)。 - 區(qū)別
主鍵索引葉子節(jié)點(diǎn)存儲的是具體的數(shù)據(jù),而非聚集索引葉子節(jié)點(diǎn)存儲的主鍵。聚集索引每張表只能有一個,非聚集索引每張表可以有多個。聚集索引在內(nèi)存上是線性的,而非聚集索引在內(nèi)存上不是線性的,邏輯上是線性的。
- limit查詢變慢的原因
limit語句會先掃描offset+n行,然后再丟棄掉前offset行,返回后n行數(shù)據(jù)。當(dāng)limit后面跟的值比較大,mysql查詢時掃描的行數(shù)變多,導(dǎo)致查詢的時間變長。因此limit的第一個參數(shù)不要設(shè)置的太大,可以通過主鍵id找到要查詢的位置再進(jìn)行l(wèi)imit。 - mysql事務(wù)隔離級別
讀未提交;讀已提交;可重復(fù)讀;序列化??芍貜?fù)讀底層是通過mvcc實(shí)現(xiàn)的。 - mysql的char和varchar的區(qū)別
- varchar 類型的長度是可變的,而 char 類型的長度是固定的
- char 長度最大為 255 個字符,varchar 長度最大為 65535 個字符
- varchar 類型的查找效率比較低,而 char 類型的查找效率比較高
- DATETIME 和 TIMESTAMP 的區(qū)別
- DATETIME比TIMESTAMP的范圍要廣
- TIMESTAMP占4個字節(jié),DATETIME占用8個字節(jié)
- TIMESTAMP會時間在當(dāng)前時間和UTC之間進(jìn)行轉(zhuǎn)化,DATETIME直接保存和返回
- 什么情況下會創(chuàng)建索引
- 字段的值是唯一
- 表的數(shù)據(jù)量比較大并且頻繁作為where的查詢條件
- 索引失效的情況
- 不遵循最左前綴原則
- 索引上有通配符
- 索引的類型和匹配類型不一致
- 索引上存在內(nèi)置函數(shù)
- or連接了非索引字段
- 范圍查詢時數(shù)據(jù)量過大
- 索引優(yōu)化
- 避免回表
- 索引最好設(shè)置為not null
- explain調(diào)試sql