mysql创建部分索引
生活随笔
收集整理的這篇文章主要介紹了
mysql创建部分索引
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
mysql中,字符串如何建立索引的(本文中截取一部分)
只對字符串的前幾個字符進行索引。通過字符串的前幾個字符我們已經(jīng)能大概排序字符串了,剩下不能排序的可以通過遍歷進行查找啊,這樣只在B+樹中存儲字符串的前幾個字符的編碼,既節(jié)約空間,又減少了字符串的比較時間,還大概能解決排序的問題,何樂而不為,比方說我們在建表語句中只對name列的前10個字符進行索引可以這么寫:
CREATE TABLE person_info( name VARCHAR(100) NOT NULL, birthday DATE NOT NULL, phone_number CHAR(11) NOT NULL, country varchar(100) NOT NULL, KEY idx_name_age_birthday (name(10), birthday, phone_number) );
name(10)就表示在建立的B+樹索引中只保留記錄的前10個字符的編碼,這種只索引字符串值的前綴的策略是我們非常鼓勵的,尤其是在字符串類型能存儲的字符比較多的時候。
?
對于我工作遇到后10個字符需要創(chuàng)建索引。
下面這一列,后面10幾個字符更有規(guī)律
?
?可惜mysql不支持后綴索引。只支持前綴索引
?
前綴索引能很好地減少索引的大小及提高速度,但是mysql不能在order by 和group by查詢中使用前綴索引,也不能把它們用伯覆蓋索引。
有時后綴索引也挺有用,例如查找某個域名的所有電子郵件地址。mysql不支持反向索引,但是可以把反向字符串保存起來,并且索引它的前綴。可以用觸發(fā)器維護這種索引。
?
轉載于:https://www.cnblogs.com/nmap/p/9364012.html
總結
以上是生活随笔為你收集整理的mysql创建部分索引的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于Map迭代循环,key和value的
- 下一篇: Java多线程的几种实现方法