您好,登錄后才能下訂單哦!
這期內容當中小編將會給大家帶來有關mysql優化的小提示有哪些,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
SQL性能提示
特定查詢性能提示(有關索引的提示,請參見數據庫設計提示):
1.使用EXPLAIN分析查詢執行計劃
使用解釋查看查詢執行的計劃
2.使用慢速查詢日志(始終打開!)
使用慢速查詢日志(慢查詢日志)
3.當您已經或可能使用分組方式時,不要使用DISTINCT
當你能或正在使用分組時不要使用 不同的
4.插入性能
插入性能
1.批量插入和替換
使用批量插入
2.使用加載數據而不是插入
用加載數據代替插入
5.限制m,n可能沒有聽起來那么快
極限m,n可能并沒有聽起來那么的快
6.如果您有>~2K條記錄,請不要使用ORDER BY RAND()
如果你的記錄大于2000條,請不要使用 蘭德訂單()
7.選擇頻繁更新的數據或大型數據集時,請使用SQL\u NO\u緩存
當你在查詢經常更新和大數據集的數據時,使用SQL\u無\u緩存
8.避免在LIKE查詢開始時使用通配符
避免在喜歡查詢的變量的頭字符中使用通配符
9.避免相關子查詢和in select和where子句(盡量避免in)
避免相關子查詢..
10.無計算比較--隔離索引列
不使用計算后的比較------可使索引列仍然有效
11.按順序和限制使用等式和覆蓋索引進行最佳工作
訂購人和 限度在有索引和等于條件時效率更高
12.將文本/blob與元數據分開,如果不需要,不要將文本/blob放入結果中
把文本/斑點這兩種數據分開,如果不需要的話,不要包含在結果中
13.派生表(FROM子句中的子查詢)可用于檢索BLOB而無需對其進行排序。(如果第一部分找到ID并使用then獲取其余ID,則自連接可加快查詢速度)
14.ALTER TABLE…ORDER BY可以按時間順序對數據進行排序,并按不同的字段對其重新排序--這可以使該字段上的查詢運行得更快(可能這會在索引中進行?)
15.知道何時拆分復雜查詢并連接較小的查詢
知道什么時候分割復雜查詢和合并簡單查詢
16.如果可以,一次刪除少量
17.使類似查詢保持一致,以便使用緩存
把相似的查詢改為一摸一樣的查詢,這樣可以使用隱藏物
18.具有良好的SQL查詢標準
19.不要使用不推薦的功能
不要使用未得認可得特性
20.將多個索引字段(<5.0)轉換或打開為UNION可能會加快速度(有限制),在5.0之后,索引合并應該會加快速度。
在多索引列,把或改為協會可使速度加快(在5版本以下),
21.不要在Innodb表上每次搜索都使用COUNT*,可以重復幾次和/或匯總表,或者如果需要對行總數使用COUNT*,請使用SQL_CALC_FOUND_rows并選擇Find_rows()
不要在每一個搜索中使用計數*(在Innodb表中),可以使用SQL\u計算\u找到\u行和 選擇已找到的行()代替他們
22.在重復密鑰更新時使用INSERT…(插入忽略)以避免必須選擇
23.使用groupwise maximum而不是子查詢
擴展性能提示:
1.使用基準測試
2.隔離工作負載—不要讓管理工作干擾客戶的性能。(即備份)
3.調試糟透了,測試石頭!
4.隨著數據的增長,索引可能會發生變化(基數和選擇性會發生變化)。結構可能會發生變化。使您的模式與代碼一樣模塊化。使您的代碼能夠擴展。計劃并接受變化,并讓開發人員也這樣做。
網絡性能提示:
1.通過只獲取您需要的內容來最小化流量。
通過查詢你需要得數據來減少通信流量
1.分頁/分塊數據檢索限制
2.不要使用選擇*
不要使用 選擇*
3.如果長時間的查詢效率更高,那么要小心大量小的快速查詢
2.在適當情況下使用multi_查詢以減少往返
操作系統性能提示:
1.使用適當的數據分區
1.對于集群。在需要集群之前,就開始考慮集群
2.保持數據庫主機盡可能干凈。您真的需要該服務器上的窗口系統嗎?
3.利用操作系統的優勢
4.縮減cron腳本
5.創建一個測試環境
6.源代碼管理架構和配置文件
7.對于LVM innodb備份,請還原到不同的MySQL實例,以便innodb可以前滾
8.適當劃分
9.在擁有真實數據時對數據庫進行分區——在擁有真實數據之前,不要假設您知道自己的數據集
MySQL服務器總體提示:
1.innodb_flush_commit=0可以幫助從機延遲
2.優化數據類型,使用一致的數據類型。使用過程分析()幫助確定滿足您需要的最小數據類型。
3.使用樂觀鎖,而不是悲觀鎖。嘗試使用共享鎖,而不是獨占鎖。共享模式與更新模式
4.如果可以,壓縮文本/水滴
5.壓縮靜態數據
6.不要經常備份靜態數據
7.如果合適,啟用并增加查詢和緩沖區緩存
8.配置參數--http://docs.cellblue.nl/2007/03/17/easy-mysql-performance-tweaks/ 這是一個很好的參考
9.配置變量和提示:
1.使用提供的配置文件之一
2.密鑰緩沖區、unix緩存(保留一些RAM空閑)、每個連接變量、innodb內存變量
3.注意全局變量與每個連接變量
4.檢查顯示狀態和顯示變量(5.0及以上版本中的全局|會話)
5.注意交換,特別是與Linux的交換,“交換”(對于innodb數據文件,繞過操作系統文件緩存,如果可能,innodb_flush_method=O_DIRECT(這也是操作系統特有的))
6.整理表碎片,重建索引,進行表維護
7.如果您使用innodb_flush
上述就是小編為大家分享的mysql優化的小提示有哪些了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。