肉眼可以識別的差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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 通用文字識別API-通用文字識別介面可以識別哪些場景文字API
- PostgreSQL與Oracle的sql差異SQLOracle
- MYSQL SET型別欄位的SQL操作知識介紹MySql型別
- RMS與Std的差別:均方差與標準差
- SQL Server 2017 各版本之間的差異SQLServer
- 人人都有可能需要的圖片識別方法,還可以翻譯
- 螢幕可以截圖識別文字?我來教你
- JavaScript中的資料型別-儲存差別JavaScript資料型別
- Cassandra與RDBMS的設計差別
- 中西方文化的差別
- 倡導“遊戲無差別人臉識別”?請先回答這3個問題遊戲
- ASH可以生成指定的session或sql_id的報告,ASH和AWR的區別SessionSQL
- python中分辨int和float的差別Python
- 不同資料庫SQL語法差異資料庫SQL
- MYSQL和SQL的區別MySql
- SQL的連線型別SQL型別
- Istio-Ingress 與 nginx-ingress的差別Nginx
- 小程式和APP的差別是什麼?APP
- @Component和@Configuration作為配置類的差別
- SQL知識點(+)SQL
- 別人眼中的程式猿和現實中的程式猿差別在哪?
- sql語句中#{}和${}的區別SQL
- SQL中where和on的區別SQL
- 【SQL】18 SQL NULL 函式、SQL 通用資料型別、SQL 用於各種資料庫的資料型別SQLNull函式資料型別資料庫
- 設定SQL標識列的值SQL
- TiDB與MySQL的SQL差異及執行計劃簡析TiDBMySql
- 用canvas實現一個自動識別兩張圖片差異(圖片找不同)的功能Canvas
- css絕對定位和相對定位的差別CSS
- 定性研究與定量研究的差別及其結合
- 程式碼差別不大的多專案如何管理?
- [Error Code: 904, SQL State: 42000] ORA-00904 : 識別符號無效ErrorSQL符號
- SQL Server 別名(as)SQLServer
- 一文搞懂文字識別、銀行卡識別、通用卡證識別、身份證識別
- 前端基礎:Session 和 Cookie 差別前端SessionCookie
- OCR表單識別/雲脈通用表單識別/表格識別
- 深入sql多表差異化聯合查詢的問題詳解SQL
- Golang 針對 MySQL 資料庫表結構的差異 SQL 工具GolangMySql資料庫
- SQL語句中not in 和not exist的區別SQL