坑位減少,清北畢業(yè)一樣被裁。。。
共 2699字,需瀏覽 6分鐘
·
2024-07-25 09:00
點(diǎn)擊關(guān)注公眾號(hào),SQL干貨及時(shí)獲取
后臺(tái)回復(fù):1024,獲取海量學(xué)習(xí)資源 SQL刷題專欄 SQL145題系列
最近在某職場網(wǎng)站看到一位清北畢業(yè)高材生被裁了,在大廠干了十多年,有名校學(xué)歷和大廠背景加持找工作應(yīng)該不難,但結(jié)果卻失業(yè)4個(gè)月,offer為0,不知道是真找不到,還是看不上?
以下是今天的SQL干貨
常用的SQL優(yōu)化小技巧
1、字段
-
盡量使用TINYINT、SMALLINT、MEDIUM_INT作為整數(shù)類型而非INT,如果非負(fù)則加上UNSIGNED;
-
VARCHAR的長度只分配真正需要的空間;
-
使用枚舉或整數(shù)代替字符串類型;
-
盡量使用TIMESTAMP而非DATETIME;
-
單表不要有太多字段,建議在20以內(nèi);
-
避免使用NULL字段,很難查詢優(yōu)化且占用額外索引空間;
-
用整型來存IP。
2、索引
-
索引并不是越多越好,要根據(jù)查詢有針對(duì)性的創(chuàng)建,考慮在WHERE和ORDER BY命令上涉及的列建立索引,可根據(jù)EXPLAIN來查看是否用了索引還是全表掃描;
-
應(yīng)盡量避免在WHERE子句中對(duì)字段進(jìn)行NULL值判斷,否則將導(dǎo)致引擎放棄使用索引而進(jìn)行全表掃描;
-
值分布很稀少的字段不適合建索引,例如“性別”這種只有兩三個(gè)值的字段;
-
字符字段只建前綴索引;
-
字符字段最好不要做主鍵;
-
不用外鍵,由程序保證約束;
-
盡量不用UNIQUE,由程序保證約束;
-
使用多列索引時(shí)主意順序和查詢條件保持一致,同時(shí)刪除不必要的單列索引。
3、查詢SQL
-
可通過開啟慢查詢?nèi)罩緛碚页鲚^慢的SQL;
-
不做列運(yùn)算:SELECT id WHERE age + 1 = 10,任何對(duì)列的操作都將導(dǎo)致表掃描,它包括數(shù)據(jù)庫教程函數(shù)、計(jì)算表達(dá)式等等,查詢時(shí)要盡可能將操作移至等號(hào)右邊;
-
sql語句盡可能簡單:一條sql只能在一個(gè)cpu運(yùn)算;大語句拆小語句,減少鎖時(shí)間;一條大sql可以堵死整個(gè)庫;
-
不用SELECT *;
-
OR改寫成IN:OR的效率是n級(jí)別,IN的效率是log(n)級(jí)別,IN的個(gè)數(shù)建議控制在200以內(nèi);
-
不用函數(shù)和觸發(fā)器,在應(yīng)用程序?qū)崿F(xiàn);
-
避免%xxx式查詢;
-
少用JOIN;
-
使用同類型進(jìn)行比較,比如用'123'和'123'比,123和123比;
-
盡量避免在WHERE子句中使用!=或<>操作符,否則將引擎放棄使用索引而進(jìn)行全表掃描;
-
對(duì)于連續(xù)數(shù)值,使用BETWEEN不用IN:SELECT id FROM t WHERE num BETWEEN 1 AND 5;
-
列表數(shù)據(jù)不要拿全表,要使用LIMIT來分頁,每頁數(shù)量也不要太大。
![]()
我建了一個(gè)AI相關(guān)的知識(shí)庫,包含ChatGPT,Midjourney,Stable Diffusion等流行的AI工具的用法和一些變現(xiàn)方式,在下方公眾號(hào)(非本號(hào))后臺(tái)回復(fù):AIGC,即可獲取訪問方式。
后臺(tái)回復(fù)關(guān)鍵字:1024,獲取一份精心整理的技術(shù)干貨
后臺(tái)回復(fù)關(guān)鍵字:進(jìn)群,帶你進(jìn)入高手如云的交流群
推薦閱讀
博客園再發(fā)求救信。。。
蘿卜快跑,斷了跑網(wǎng)約車的想法。。。
工行員工內(nèi)網(wǎng)發(fā)聲:利潤是公司的,身體是自己的
35歲員工被得物暴力裁員,160余萬期權(quán)打水漂。。。
多益網(wǎng)絡(luò),硬剛勞動(dòng)法!
傳網(wǎng)易員工大群丁磊被懟。。。
太瘋狂了!F15戰(zhàn)斗機(jī)及武器開源!!!總共250G......
SQL優(yōu)化萬能公式:5 大步驟 + 10 個(gè)案例
B 站崩,小紅書崩,罪魁禍?zhǔn)拙谷皇恰!ky繃!
不正當(dāng)抓取高德地圖“擁堵延時(shí)指數(shù)”,被判賠償1250萬
![]()
