面試經常被問到的SQL優化

2021-10-06 06:27:27 字數 1314 閱讀 8271

1. 不要把select子句寫成 select *

select * from t_emp;

2. 對order by排序的字段設定索引

3. 少用is null

select ename from t_emp where comm is null; #不使用索引

select ename from t_emp where comm =-1;

4. 盡量少用 != 運算子
select ename from t_emp where deptno!=20; #不使用索引

select ename from t_emp where deptno<20 and deptno>20;

5. 盡量少用 or 運算子
select ename from t_emp where deptno=20 or deptno=30; #不使用索引

select ename from t_emp where deptno=20

union all

select ename from t_emp where deptno=30;

6. 盡量少用 in 和 not in 運算子
select ename from t_emp where deptno in (20,30); #不使用索引

select ename from t_emp where deptno=20

union all

select ename from t_emp where deptno=30;

7. 避免條件語句中的資料型別轉換
select ename from t_emp where deptno=『20』;

8. 在表示式左側使用運算子和函式都會讓索引失效
select ename from t_emp where salary*12>=100000; #不使用索引

select ename from t_emp where salary>=100000/12;

select ename from t_emp where year(hiredate)>=2000; #不使用索引

select ename from t_emp

where hiredate>=『2000-01-01 00:00:00』;

關於sql優化還有很多很多,後續我也會為大家打來更詳細的的sql優化細節,及mysql調優方面的相關知識。

面試經常被問到 拉鍊表

致力做乙個首先想的是怎麼幫助別人的人 點讚再看,幫我個忙剛工作的時候,有個厲害的同學比我先去公司實習,回到學校就跟我說拉鍊表的有關知識,而且後來跳槽面試時也被問到拉鍊表,所以想寫一下拉鍊表,希望能幫到萬一面試也被問到拉鍊表的同學。比如銀行評價乙個客戶的等級,是根據客戶的資產多少來評定的,而且根據國家...

Oracle的資料優化 經常被問到 ?

以oracle資料庫舉例 a g要求掌握,h一般為dba操作,了解就可以了 a。建庫 已知將儲存海量資料的時候,因為oracle是通過使用者來管理資料的,第一步我們先建乙個tableaspace 假設表空間名為test 然後建立使用者test 一般情況下使用者名稱和表空間同名 建立的使用者test使...

面試中經常被問到的問題

1 請簡單解釋演算法是什麼?演算法是乙個定義良好的計算過程,它將一些值作為輸入並產生相應的輸出值。簡單來說,它是將輸入轉換為輸出的一系列計算步驟。2 解釋什麼是快速排序演算法?快速排序演算法能夠快速排序列表或查詢。它基於分割交換排序的原則,這種型別的演算法占用空間較小,它將待排序列表分為三個主要部分...