資料庫優化專題—1、表的主鍵用數字還是uuid
資料庫優化專題—2、邏輯刪除還是物理刪除
資料庫優化專題—3、千萬記錄如何快速分頁
資料庫優化專題—4、讀多寫少和讀多寫多
資料庫優化專題—5、刪改資料如何避免鎖表
資料庫優化專題—6、如何避免偷換交易中的商品資訊
資料庫優化專題—7、sql語句優化
資料庫優化專題—8、mysql引數優化
資料庫優化專題—9、索引優化
資料庫優化專題—10、儲存優化
資料庫優化專題—11、資料庫結構優化
這節主要講解一些sql優化方式。
select * from t_emp;
//資料庫執行,1、查詢表結構 2、換欄位 3、再執行
select name from t_emp where name like '%s%'
;//不走索引,全表掃瞄
select name from t_emp where name like 's%'
;//走索引
select name from t_emp order by deptno;
select name from t_emp where comm is not null;
//不走索引
select name from t_emp where comm >=0;
//走索引,設定非空為大於0值
select name from t_emp where comm =-1
;//走索引,設定非空為-1值
select name from t_emp where deptno !=20;
//不走索引,全表掃瞄
select name from t_emp where deptno <
20 and deptno>20;
//走索引
select name from t_emp where deptno=
20 or deptno=30;
//deptno=20走索引,deptno=30不走索引
select name from t_emp where deptno=
20 union all
select name from t_emp where deptno=30;
//走索引
select name from t_emp where deptno=
20 or deptno=30;
//deptno=20走索引,deptno=30不走索引
select name from t_emp where deptno=
20 union all
select name from t_emp where deptno=30;
//走索引
select name from t_emp where deptno=
'20'
;//資料庫先轉換資料型別再比較,效率低
select name from t_emp where salary*
12>=
100000
;//不走索引
select name from t_emp where salary>=
100000/12
;//走索引
select name from t_emp where year
(hiredate)
>=
2000
;//不走索引
select name from t_emp where hiredate>=
'2020-01-01 00:00:00'
;//走索引
優化sql語句,主要是如何走索引查詢,減少資料庫計算等。 7 SQL優化技術
7.1 改變訪問結構 7.2 修改sql語句 7.3 提示hint 提示的分類 初始化引數提示 all rows,cursor sharing extract,dynamic sampling,first rows,gather plan statistics 查詢轉化提示 no eliminate...
資料庫優化 sql語句優化
1 group by語句優化 因為mysql對所有group by的字段進行排序,所以如果包含group by但是想要避免排序結果的消耗,可以指定order by null來進行group by的排序。select id,sun moneys from sales group by id expla...
資料庫 sql語句優化
寫操作 write 1 如果你同時從同一客戶插入很多行,使用多個值表的insert語句。這比使用分開insert語句快 在一些情況中幾倍 insert into test values 1,2 1,3 1,4 2 如果你從不同客戶插入很多行,能通過使用insert delayed語句得到更高的速度。...