SQL語句的優化

2021-09-09 08:27:37 字數 1297 閱讀 7533

sql語句的優化:

《一》 :盡量使用單錶查詢,不適用多表查詢(子查詢)

《二》 :使用distinct

《三》 :盡量使用較小的列

《四》 :頻繁使用的字段加索引

《五》 :避免使用select* 和 like 查詢

《六》 :資料量在百萬級以上,使用分表查詢,時時分割表

《七》 :避免在索引列上使用計算,not ,in 等操作

《八》 :當只需要一行資料的時候,使用limit

《九》 :針對查詢較慢的語句,可以使用explain來分析該語句具體的執**況

字段優化

(一):能用小的,不用大的

(二):能用定長,不用變長

索引優化

(一):表的主鍵和外來鍵,必須有索引

(二):資料量超過300的表應該有索引

(三):經常與其他表進行連線的字段上應該建立索引

(四):經常出現在where語句中的字段,特別是大表的字段,建 立索引

(五):索引應建立在選擇效能高的字段上

(六):索引應該建立在小字段上,對於大的文字字段甚至超長字段,不要建立索引

表的優化

《一》儲存引擎:myisam, innodb

區別:(1):構成上的區別:

myisam 在磁碟上儲存成三個檔案

 .frm檔案 儲存表定義

 資料檔案 副檔名:.myd

 索引檔案 副檔名:.myi

innodb在磁碟上的資源是兩個檔案

 表空間資料檔案

 日誌檔案

注意:表的大小只受限於作業系統檔案的大小,一般為2gb

《二》:對鎖的支援

myisam支援表鎖,innodb 支援行鎖

《三》:事物處理方面

myisam 型別的表強調的是效能,其執行速度比innodb更快,

但是不支援事物和外來鍵

inoodb 提供事物,支援事物,外來鍵等高階的資料庫功能

《四》:對增 , 刪 , 改 , 查的操作

myisam :刪,查

innodb :insert ,update

《五》:對auto_increment的操作

myisam :按照寫入順序

innodb :主鍵自增長

SQL 語句優化 OR 語句優化案例

從上海來到溫州,看了前幾天監控的sql語句和資料變化,發現有一條語句的io次數很大,達到了150萬次io,而兩個表的資料也就不到20萬,為何有如此多的io次數,下面是執行語句 select ws.nodeid,wi.laststepid,wi.curstepid from workflowinfo ...

sql語句的優化

1 in 操作符 用in寫出來的sql的優點是比較容易寫及清晰易懂,這比較適合現代軟體開發的風格。但是用in的sql效能總是比較低的,從oracle執行的步驟來分析用in的sql與不用in的sql有以下區別 oracle試圖將其轉換成多個表的連線,如果轉換不成功則先執行in裡面的子查詢,再查詢外層的...

SQL語句的優化

通過使用者反饋獲取存在效能問題的sql 通過慢查日誌獲取存在效能問題的sql 實時獲取存在效能問題的sql mysqldumpslow pt query digest pt query digest explain h 127.0.0.1,u root,p p ssword slow mysql.l...