我想在數據庫中進行一些索引優化。Mysql:varchar上的部分索引
我看到有關於字段VARCHAR 32的指數,在VARCHAR 100
的領域例如VARCHAR 32索引包含的ID(也許用戶ID或什麼,這樣字符串60c487df-38e8-1c79 -da00-561799874092),varchar 100包含以pluto或pippo爲例的短字符串。 (我知道,這個字段必須縮小)
第一個問題)對於這些字段,刪除索引並創建一個部分索引是否正確?
例如,將varchar 32的索引大小減小到第8個字符,幫助mysql查找行更快? (分析較小的指數)。 有沒有缺點?
第二個問題)Field x varchar 100有一個完整索引(不是部分),當我用x =「pippo」添加一行時,mysql是如何工作的? Mysql是否會爲該列的索引填充(或保留)所有100個字節?
在此先感謝。
如果我使用完整的索引我36 varchar字段,我有18個在一百萬臺行的基數,如果我使用部分指數的基數是一樣的,它的內容是一個UUID,但非主鍵,在相關表格中是uuid。就我而言,前8個字符幾乎不會等於另一行的前8個字符。 不小的索引能幫助mysql更快地掃描結果嗎? – theex
掃描兩行(而不是一行)的成本高於索引尺寸的一半。 –