1、索引可以加快資料檢索操作,但會使資料修改操作變慢。每修改資料記錄,索引就必須重新整理一次。為了在某種程式上彌補這一缺陷,許 多sql命令都有乙個delay_key_write項。這個選項的作用是暫時制止mysql在該命令每插入一條新記錄和每修改一條現有之後立刻對索引進 行重新整理,對索引的重新整理將等到全部記錄插入/修改完畢之後再進行。在需要把許多新記錄插入某個資料表的場合,delay_key_write選項的作用將非 常明顯。另外,索引還會在硬碟上占用相當大的空間。因此應該只為最經常查詢和最經常排序的資料列建立索引。注意,如果某個資料列包含許多重複的內 容,為它建立索引就沒有太大的實際效果。
2、mysql索引的特點:提高查詢速度、索引不會包含有null值的列
3、索引包括普通索引、唯一索引、主鍵索引、組合索引。沒有外來鍵索引這個說法。
4、在取值重複率比較高的列上,適合建立位圖索引,位圖索引適合於低基數情況。
5、有關mysql索引描述中,innodb儲存引擎並不支援全文索引。
6、mysql資料庫中建立索引的常用規則:1、表的主鍵、外來鍵必須有索引,2、經常與其他表進行連線的表,在連線欄位上應該建立索引,3、索引應該建在小字段上,對於大的文字字段甚至超長字段,不要建索引,4、索引應該建在選擇性高的字段上。
7、索引可以加快資料庫的檢索速度,降低了資料表資料的維護任務效能。
唯一索引:與"普通索引"類似,不同的就是:索引列的值必須唯一,但允許有空值。
主鍵索引:它 是一種特殊的唯一索引,不允許有空值。
全文索引:僅可用於 myisam 表,針對較大的資料,生成全文索引很耗時好空間。
8、建立索引使用create index關鍵字,優點是使得查詢指定列更加高效。
9、mysql的索引包括:普通索引、全文索引(fulltext) 、唯一索引、單列索引、多列索引、組合索引等。
10、所有的索引都不是必須的,where和order by子句中經常使用的字段都應該新增索引,字段內容經常變化的列新增索引反而降低效能。
11、mysql刪除索引的語句:drop index indexname
12、位圖索引是oracle中的索引分類,在mysql中並不存在。
索引分為兩類,聚合索引和非聚合索引,
運算元據時,增刪改操作都會先將索引移除再運算元據
查詢語句一次只會使用乙個索引,
索引查詢時不會將null值包含再內
13、索引分單列索引和組合索引。單列索引,即乙個索引只包含單個列,乙個表可以有多個單列索引,但這不是組合索引。
14、索引可以增加、刪除,但是沒有修改操作。
引用索引的優點有:
保證資料庫表中每一行資料的唯一性。
可以加快資料的檢索速度,這也是建立索引的最主要的原因。
可以加速表和表之間的連線,特別是在實現資料的參考完整性方面特別有意義。
在使用分組和排序 子句進行資料檢索時,同樣可以顯著減少查詢中分組和排序的時間。
通過使用索引,可以在查詢的過程中,使用優化隱藏器,提高系統的效能。
1)不要有超過5個以上的表連線(join)
2)考慮使用臨時表或表變數存放中間結果。
3)少用子查詢
4)檢視巢狀不要過深,一般檢視巢狀不要超過2個為宜。
以上是mysql索引優化的原則。
15、索引可以提高查詢效率,可以避免進行全表的資料掃瞄。
1.雖然索引大大提高了查詢速度,同時卻會降低更新表的速度,如對表進行insert、update和delete。因為更新表時,mysql不僅要儲存資料,還要儲存一下索引檔案。
2.建立索引會占用磁碟空間的索引檔案一般情況這個問題不太嚴重,但如果你在乙個大表上建立了多種組合索引,索引檔案的會膨脹很快。
MySQL索引相關面試題
相信很多人對於mysql的索引都不陌生,索引 index 是幫助mysql高效獲取資料的資料結構。因為索引是mysql中比較重點的知識,相信很多人都有一定的了解,尤其是在面試 現的頻率特別高。樓主自認為自己對mysql的索引相關知識有很多了解,而且因為最近在找工作面試,所以單獨複習了很多關於索引的知...
mysql索引相關面試題
1 儲存引擎主要有 1.myisam 2.innodb,3.memory,4.archive,5.federated 預設為 innodb 引擎。innodb 底層儲存結構為 b 樹,b 樹的每個節點對應 innodb 的乙個 page,page 大小是固定的,一般設為 16k 2 使用場景?1 經...
MySQL面試題 索引設計和建立的原則
對於經常查詢的字段,建議建立索引 索引不是越多越好,乙個表如果有大量的索引,不僅占用磁碟空間,而且對於寫操作會造成效能底下 避免對經常更新的表進行建立過多的索引,因為當表中有資料更改時,索引也會進行調整和更新,十分消耗系統資源 數量小的表建議不要建立索引,資料量小時索引不僅起不到明顯的優化效果,對於...