mysql 的語句的優化方法介紹

2021-06-25 10:30:31 字數 804 閱讀 3845

1、使用索引來更快地遍歷表。 

預設情況下建立的索引是非群集索引,但有時它並不是最佳的。在非群集索引下,資料在物理上隨機存放在資料頁上。合理的索引設計要建立在對各種查詢的分析和**上。一般來說: 

a.有大量重複值、且經常有範圍查詢( > ,< ,> =,< =)和order by、group by發生的列,可考慮建立群集索引; 

b.經常同時訪問多列,且每列都含有重複值可考慮建立組合索引; 

c.組合索引要盡量使關鍵查詢形成索引覆蓋,其前導列一定是使用最頻繁的列。索引雖有助於提高效能但不是索引越多越好,恰好相反過多的索引會導致

系統低效。使用者在表中每加進乙個索引,維護索引集合就要做相應的更新工作。 

2、在海量查詢時盡量少用格式轉換。 

3、order by和gropu by使用order by和group by短語,任何一種索引都有助於select的效能提高。 

4、任何對列的操作都將導致表掃瞄,它包括

資料庫函式

、計算表示式等等,查詢時要盡可能將操作移至等號右邊。 

5、in、or子句常會使用工作表,使索引失效。如果不產生大量重複值,可以考慮把子句拆開。拆開的子句中應該包含索引。 

6、只要能滿足你的需求,應盡可能使用更小的資料型別:例如使用mediumint代替int 

7、盡量把所有的列設定為not null,如果你要儲存null,手動去設定它,而不是把它設為預設值。 

8、盡量少用varchar、text、blob型別 

9、如果你的資料只有你所知的少量的幾個。最好使用enum型別 

10、正如graymice所講的那樣,建立索引。

MySql語句優化以及索引介紹

innodb和myisam 主要是這兩個其他可以忽略 兩者的特點和區別 innodb myisam msyql中的事務隔離級別 首先理解髒讀 不可重複讀和幻讀的含義。髒讀 讀到乙個事務未提交的資料。不可重複讀 事務1讀取了一行資料,但是事務未結束時,事務2對該資料進行修改了,事務1再次讀取時,兩次讀...

MySQL語句的優化

1 使用limit 當不需要取出全部資料時,在查詢後面加上limit限制。2 select 每次看到select 的時候都需要用懷疑的眼光審視,是不是真的需要返回全部的列。3 重複查詢相同的資料 4 列表in 的比較 相對於or,in 的處理速度更快。5 分解關聯查詢 對於一些複雜的關聯查詢可以拆分...

mysql 語句優化例項 MySQL 語句優化例項

優化 limit 分頁 執行耗時 1.379s select from vio basic domain info limit 1000000,10 處理分頁慢查詢的方式一般有以下幾種 思路一 構造覆蓋索引 思路二 優化 offset 無法用上覆蓋索引,那麼重點是想辦法快速過濾掉前 100w 條資料...