肉眼可以識別的差SQL
我自己公眾號原文: https://mp.weixin.qq.com/s/P-hOuC6fWEauGflF0GAgTg
有時候別人問我,你能一眼看出SQL的好壞嗎?我不敢說100%能確定,但是能確定的都是100%的不好。那麼靠的是什麼?根據經驗來說符合下面的規則的,通常來說是不好的。
1、沒有where 條件
2、Select的列超過50列
3、SQL中存在標量子查詢
4、SQL謂詞過濾中僅含有!=或<>或or運算子
5、SQL謂詞過濾中對欄位進行null值判斷作為業務邏輯
6、SQL謂詞過濾中僅含有notin,not exist
7、SQL謂詞過濾中僅含有前後%
8、SQL謂詞過濾中=”左邊進行函式、算術運算或其他表示式運算。
9、SQL謂詞過濾中非唯一查詢的場景中無時間限定或分頁限定。
10、 SQL謂詞過濾中僅有狀態、等區別度較低的欄位
11、 SQL謂詞過濾中時間範圍過大或者缺失上下限之一
12、 SQL謂詞過濾中範圍查詢沒有分頁
13、 SQL謂詞過濾中無意義排序
14、 多表關聯列非索引列
15、 多表關聯,關聯列型別轉換
16、 多表關聯時,select的列只用到其中一個表
17、 多表關聯時,select的列只來自多表,但是大部分表只貢獻1-2列
18、 多表關聯時,謂詞中涉及多表的過濾條件,但是這些條件通常只為狀態等無效過濾條件
19、 關聯表超過5個(MySQL超過3個)
20、 Select沒有繫結變數(Oracle)
21、 繫結變數過多超過50個(Oracle)
22、 對CLOB和BLOB進行模糊查詢
23、 SQL中出現對log表、tmp表,介面表,歷史表進行關聯和判斷
24、 多表關聯笛卡爾積
25、 SQL中出現全形半形,大小寫等判斷
26、 In 超過100個
27、 子查詢超過2個
28、 子查詢和父查詢存在巢狀
29、 拼接欄位作為謂詞充當過濾條件
30、 排序計算count
31、 分組維度超過2個
32、 非時間範圍的分組sum,count
可能存在一點爭議,但是可以說如果都做到禁止以上,那麼資料庫的負荷絕對很低。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/637517/viewspace-2893864/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SQL中IN,NOT IN,EXISTS,NOT EXISTS的用法和差別SQL
- 通用文字識別API-通用文字識別介面可以識別哪些場景文字API
- 識別低效執行的SQL語句SQL
- SQL Server SQL語句中的函式呼叫與Oracle SQL語句函式呼叫一個有趣的差別SQLServer函式Oracle
- 名稱 ****不是有效的識別符號 sql符號SQL
- 如何識別SQL Server中的IO瓶頸SQLServer
- 如何識別SQL Server中的CPU瓶頸SQLServer
- PostgreSQL與Oracle的sql差異SQLOracle
- 識別SQL Server 2008的瓶頸SQLServer
- 人人都有可能需要的圖片識別方法,還可以翻譯
- #define、const、typedef的差別
- 倡導“遊戲無差別人臉識別”?請先回答這3個問題遊戲
- JavaScript中的資料型別-儲存差別JavaScript資料型別
- [ZT]讓editplus識別SQL關鍵字SQL
- MYSQL SET型別欄位的SQL操作知識介紹MySql型別
- 虹膜識別和眼紋識別的區別 虹膜識別和眼紋識別哪個好?
- golang 有哪些庫可以做攝像頭/視訊人臉識別的?Golang
- 不同優秀程度JavaScript開發者的差別JavaScript
- cat ,more ,less 命令的使用和差別
- 程式設計師差別的本質程式設計師
- ASH可以生成指定的session或sql_id的報告,ASH和AWR的區別SessionSQL
- 《卸甲筆記》-PostgreSQL和Oracle的SQL差異分析之五:函式的差異(五)筆記SQLOracle函式
- 《卸甲筆記》-PostgreSQL和Oracle的SQL差異分析之五:函式的差異(三)筆記SQLOracle函式
- 《卸甲筆記》-PostgreSQL和Oracle的SQL差異分析之五:函式的差異(一)筆記SQLOracle函式
- python中分辨int和float的差別Python
- 小程式和APP的差別是什麼?APP
- Python中運算子"=="和"is"的差別分析Python
- EXPLAIN PLAN FOR 和 SET AUTOTRACE之間的差別AI
- 比較兩個表的資料差別
- 【差異】LENGTH與VSIZE的區別演示
- 我的眼裡無軟體差別(轉)
- NHibernate Criteria中 Restriction與Expression的差別RESTExpress
- delegate、notification、KVO場景差別
- 用canvas實現一個自動識別兩張圖片差異(圖片找不同)的功能Canvas
- int型別和long long型別運算執行時間的差別型別
- SQL Server 2017 各版本之間的差異SQLServer
- 差SQL引起CPU使用率100%的效能分析SQL
- 別人眼中的程式猿和現實中的程式猿差別在哪?