在數字型別的欄位上建立索引,比如是B樹索引,索引加載到記憶體時可以在B樹上按照規則排序;如果是字符型別的索引,在B樹上怎么排序的?(是把字符按照asci碼轉換再插入嗎?)
uj5u.com熱心網友回復:
字符有字符的排序順序,任何字符都可以轉換為二進制碼。uj5u.com熱心網友回復:
各種型別都有其排序規則,而字符型型別的排序還有分各種字符集的各種COLLATE不是簡單按ascII碼排序
uj5u.com熱心網友回復:
1. Mysql 索引的排序受字符集和排序規則的影響。2. 排序規則優先級:SQL陳述句 > 列級別設定 > 表級別設定 > 庫級別設定 > 實體級別設定,也就是說,SQL陳述句中指定了排序規則,則以其批定為準,否則以下一級為準(列級別),如果列級別沒有指定,默認是繼承表級別的設定,以此類推。
3. 我們以字符集utf8mb4為例,常用的排序規則有:utf8mb4_general_ci、utf8mb4_bin、utf8mb4_unicode_ci
4. 查看Mysql 實體級別的字符級和排序規則: show variables like '%character%'; show variables like %collation%
uj5u.com熱心網友回復:
明白了,還有個小問題麻煩了:普通索引重復鍵值在B+樹里是怎么排序處理的?
uj5u.com熱心網友回復:
按照asci碼再插入, 不需要 轉換uj5u.com熱心網友回復:
以鏈表的形式排列在一起的
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/18328.html
標籤:MySQL
上一篇:同樣的命令sql可執行,但Mysql始終提示陳述句有錯誤,求教
下一篇:mysql新手上路
