mysql select稽核
· 禁止使用 select * ,只獲取必要欄位
解讀:
( 1 ) select * 會增加 cpu/io/ 記憶體 / 頻寬的消耗
( 2 )指定欄位能有效利用索引覆蓋
( 3 )指定欄位查詢,在表結構變更時,能保證對應用程式無影響
· insert 必須指定欄位,禁止使用 insert into T values()
解讀:指定欄位插入,在表結構變更時,能保證對應用程式無影響
· 隱式型別轉換會使索引失效,導致全表掃描
· 禁止在 where 條件列使用函式或者表示式
解讀:導致不能命中索引,全表掃描
· 禁止負向查詢以及 % 開頭的模糊查詢
解讀:導致不能命中索引,全表掃描
以5萬資料為臨界點。。。超過5萬 就不使用like 必須修改
· 禁止大表 JOIN 和儘可能避免子查詢
· 同一個欄位上的 OR 必須改寫問 IN , IN 的值必須少於 50 個
· 應用程式必須捕獲 SQL 異常
解讀:方便定位線上問題,
檢視執行計劃可知子查詢在相同條件下是會比表關聯多一個步驟的
同時會產生一個臨時表。。
關聯查詢的效率 比 子查詢效率更好
· 5.6 之後的mysql關聯表查詢可以使用in 但是禁止使用exist
In 的執行方式已經在5.6及之後的版本優化過了
Exist 還是老的執行方式。禁止使用
說明 :本軍規適用於 併發量大,資料量大 的典型 網際網路業務 ,可直接帶走參考,不謝。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30127122/viewspace-2660975/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySql 中 select 使用MySql
- MySQL:SELECT COUNT 小結MySql
- MySQL SELECT list is not in...MySQL關閉嚴格模式MySql模式
- 學習MySQL的select語句MySql
- mysql update join,insert select 語法MySql
- mysql insert into ... select的鎖問題MySql
- MYSQL8.0特性—無select注入MySql
- 解析MySQL中INSERT INTO SELECT的使用MySql
- canal mysql select許可權粒度MySql
- SQL稽核 | SQLE 相容 MySQL 8.0 測評MySql
- mysql稽核平臺yearning及inception安裝MySql
- 驚!史上最全的select加鎖分析(Mysql)MySql
- MySQL 由於MDL讀鎖select被阻塞MySql
- Mysql第六講 select查詢基礎篇MySql
- MySQL中SELECT+UPDATE併發更新問題MySql
- select 下拉框用 Select select = new Select (element) 方法失敗
- mysql報錯:Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggreMySqlExpressAI
- 記一次 MySQL select for update 死鎖問題MySql
- Mysql基礎+select5種子句 + 子查詢MySql
- MySQL中2個select被阻塞場景的原因MySql
- 16、MySQL Case-索引key對select count(*)的影響MySql索引
- MySQL 事務常見面試題總結 | JavaGuide 稽核中MySql面試題JavaGUIIDE
- mysql select欄位別名 不可以在select 或者where中使用 但是group by 與order by可以使用MySql
- 當執行一條select語句時,MySQL到底做了啥?MySql
- MySQL 8.0 Reference Manual(讀書筆記49節--Optimizing SELECT Statements(4))MySql筆記
- MySQL 8.0 Reference Manual(讀書筆記50節--Optimizing SELECT Statements(5))MySql筆記
- MySQL 8.0 Reference Manual(讀書筆記51節--Optimizing SELECT Statements(6))MySql筆記
- MySQL 8.0 Reference Manual(讀書筆記46節--Optimizing SELECT Statements(1))MySql筆記
- MySQL 8.0 Reference Manual(讀書筆記47節--Optimizing SELECT Statements(2))MySql筆記
- MySQL 8.0 Reference Manual(讀書筆記48節--Optimizing SELECT Statements(3))MySql筆記
- mysql 高併發 select update 併發更新問題解決方案MySql
- SQL稽核 | 這裡有 MySQL/Oracle 最常用的 SQL 開發規則MySqlOracle
- Linux select()Linux
- insert into select
- select for update
- select()APIAPI
- 原來一條select語句在MySQL是這樣執行的《死磕MySQL系列 一》MySql
- select * 和 select 所有欄位的區別