Index

單股指數和復合股指數有哪些區別和優勢?

  • July 18, 2015

INDEXn:m關係表上有兩個,如下圖所示:

IDX_85785F3E43B5F743 IDX_85785F3EE9EEC0C7

現在我也可以擁有這個:

化合物

我的問題:

  • 最後一種方式(圖片複合)比前兩種方式有什麼優勢?
  • 可以#在復合指數中具有一定的權重或意義嗎?

以下是您可以使用哪個索引以及何時使用的一些說明:

首先,索引加快了檢索速度,但減慢了插入和刪除,以及索引列中值的更新。也就是說,索引會減慢大多數涉及寫入的操作。這是因為寫入記錄不僅需要寫入數據行,還需要更改任何索引。表的索引越多,需要進行的更改就越多,平均性能下降越大。在“高效載入數據”部分,我們將更詳細地介紹這種現像以及您可以採取的措施。

其次,一個索引佔用磁碟空間,多個索引相應佔用更多空間。這可能會導致您比沒有索引時更快地達到表大小限制。

例子:

mysql> ALTER TABLE customer ADD INDEX idx_sub
(subscription)
mysql> EXPLAIN SELECT name FROM customer
WHERE subscription='2009-01-01' ORDER BY name
*************************** 1. row ***************************
...
type: ref
key: idx_sub
rows: 4370
Extra: Using where; Using filesort

理想的方式:

mysql> ALTER TABLE customer ADD INDEX
idx_sub_name (subscription,name)
mysql> EXPLAIN SELECT name FROM customer
WHERE subscription='2009-01-01' ORDER BY name
*************************** 1. row ***************************
...
type: ref
key: idx_sub_name
rows: 4363
Extra: Using where; Using index

基準:

  • 執行查詢的平均秒數:

    • 無指數:3.743
    • 認購指數:0.435
    • 覆蓋指數:0.012
  • 覆蓋指數:

    • 訂閱時比索引快 35 倍
    • 比全表掃描快 300 倍

有關的:

引用自:https://dba.stackexchange.com/questions/107071