MySql有關索引的優化

2021-09-11 19:19:40 字數 703 閱讀 9187

一、寫sql需要注意的?

1.在where及order by之後建立索引。

2.避免使用!=和<>,會導致索引無效。

3.有關null值問題

例如:select * from user where *** is null,避免使用

應給***設定乙個預設的值0。

4.避免使用or查詢,否則會放棄索引。可以使用union all替代or。

5.like查詢,like '%%'前面有%會導致全表掃瞄。

6.使用between and**in,in會導致全表掃瞄。

7.在where子句中使用引數,會導致全表掃瞄。

8.在where子句中對字段進行表示式操作,導致全表掃瞄。

9.在where子句中對字段進行函式式操作,導致全表掃瞄。

10.where語句「=」左邊避免使用運算,會導致全表掃瞄。

11.復合索引,必須使用第乙個字段作為where的條件。

12.不寫沒有意義的查詢。

13.盡量使用exists代替in。

14.列中的重複資料較多的不適合建索引。

15.索引會提高select的效率,但相應會降低insert和update的效率。

16.mysql對於數字的索引會快於字串的索引。

17.使用varchar代替nchar,會提公升索引效率。

18.避免使用select * ,避免返回不需要的字段。

mysql有關索引 有關MySQL索引的一點補充

like xx select from tb1 where name like cn 未使用索引 select from tb1 where name like cn 使用索引 使用函式 未使用索引 select from tb1 where reverse name hwan 使用索引 selec...

有關索引的語句

建立索引 create index indexname on tablename columnname tablespace tablespacename 重建索引 alert index indexname rebuild nologging 若rebuild後跟online可減少鎖表的時間。刪除...

mysql 優化 聚集索引 mysql 索引優化

一.聚集索引 clustered index innodb預設依據主鍵列聚集,myisam不使用 特點 b樹每個葉子包含實際資料行,資料按照索引順序地儲存在物理頁上。優點 1.範圍查詢,獲取指定id的全部資料只需從磁碟讀取少量資料頁 如果不使用聚集索引,每條資料可能引起一次磁碟io。2.由於索引和資...