亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

mysql中select和where子句優化的方法有哪些

發布時間:2020-12-05 09:47:31 來源:億速云 閱讀:250 作者:小新 欄目:MySQL數據庫

小編給大家分享一下mysql中select和where子句優化的方法有哪些,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

數據庫優化:

1.可以在單個SQL語句,整個應用程序,單個數據庫服務器或多個聯網數據庫服務器的級別進行優化
2.數據庫性能取決于數據庫級別的幾個因素,例如表,查詢和配置設置
3.在數據庫級別進行優化,在硬件級別進行優化,平衡可移植性和性能
4.合適的結構,合適的數據類型;執行頻繁更新的應用程序大量表(少列);分析大量數據的應用程序少量表(多列);選擇合適的存儲引擎和索引;
5.壓縮適用于InnoDB表的各種工作負載,以及只讀MyISAM表
6.選擇合適的鎖定策略;InnoDB存儲引擎可以處理大多數鎖定問題
7.配置的主要內存區域是InnoDB緩沖池和MyISAM密鑰緩存。
8.優化select語句,這方面技巧同樣適用于其他帶where的delete語句等,在where子句的列上設置索引;索引對于引用多個列如join和外鍵尤其重要

select where子句優化:

1.調整查詢的結構,例如函數調用,為結果集中的每一行只調用一次,為表中的每一行只調用一次
2.減少查詢中的全表掃描數
3.定期使用ANALYZE TABLE語句使表統計信息保持最新
4.了解特定于每個表的存儲引擎的調優技術,索引技術和配置參數
5.優化InnoDB表的單查詢事務
6.通過閱讀EXPLAIN計劃并調整索引,WHERE子句,連接子句等來調查特定查詢的內部詳細信息
7.調整MySQL用于緩存的內存區域的大小和屬性。通過有效使用InnoDB緩沖池,MyISAM密鑰緩存和MySQL查詢緩存
8.where條件,去掉不必要的括號,恒定折疊,恒定條件去除,減少不必要的邏輯
9.被索引使用的常量表達式只計算一次
10.count(*)直接從表信息中查詢;當只有一張表時,not null表達式也是這樣
11.如果不使用GROUP BY或聚合函數(COUNT(),MIN()等),HAVING將與WHERE合并
12.常量表,只有一行或空表;where子句作用在primary key或者unique索引上
13.如果ORDER BY和GROUP BY子句中的所有列都來自同一個表,則在連接時首選該表
14.如果order by子句和group by子句不一樣,或來自不同的表,則會創建臨時表
15.如果使用SQL_SMALL_RESULT修飾符,MySQL將使用內存中的臨時表
16.MySQL甚至無需咨詢數據文件即可只從索引中讀取行
17.在輸出每一行之前,將跳過與HAVING子句不匹配的行

以下表被用作常量表:

SELECT * FROM t WHERE primary_key=1;
SELECT * FROM t1,t2  
WHERE t1.primary_key=1 AND t2.primary_key=t1.id;

以下查詢運行速度非常快:

SELECT COUNT(*) FROM tbl_name;
SELECT MIN(key_part1),MAX(key_part1) FROM tbl_name;
SELECT MAX(key_part2) FROM tbl_name
  WHERE key_part1=constant;
SELECT ... FROM tbl_name
  ORDER BY key_part1,key_part2,... LIMIT 10;
SELECT ... FROM tbl_name
  ORDER BY key_part1 DESC, key_part2 DESC, ... LIMIT 10;

假設索引列是數值型,以下查詢僅用到了索引樹:

SELECT key_part1,key_part2 FROM tbl_name WHERE key_part1=val;
SELECT COUNT(*) FROM tbl_name
  WHERE key_part1=val1 AND key_part2=val2;
  SELECT key_part2 FROM tbl_name GROUP BY key_part1;

以下查詢使用索引按排序順序取回數據,不需要單獨排序

SELECT ... FROM tbl_name
  ORDER BY key_part1,key_part2,... ;
SELECT ... FROM tbl_name
   ORDER BY key_part1 DESC, key_part2 DESC, ... ;

以上是“mysql中select和where子句優化的方法有哪些”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

马边| 龙川县| 荆州市| 册亨县| 永吉县| 中牟县| 迁西县| 鞍山市| 阜宁县| 石渠县| 红安县| 沂水县| 城步| 大关县| 郸城县| 昌都县| 曲松县| 巴林左旗| 延安市| 鄂州市| 牙克石市| 比如县| 普格县| 怀来县| 辽阳市| 青浦区| 手机| 绵阳市| 遵化市| 射阳县| 霍山县| 温州市| 三穗县| 仁布县| 澄迈县| 海晏县| 镇坪县| 岫岩| 潜江市| 铜陵市| 通州区|