zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

MySQL索引到底支持多少字节?

mysql字节索引 支持 到底 多少
2023-09-11 14:21:46 时间
atin1 = 1 byte = 1 character
uft8 = 3 byte = 1 character
gbk = 2 byte = 1 character
如果是GBK,也就是双字节,那么这个索引能盛768/2=384字节。 如果创建一个大字段的索引的时候就需要注意这些,否则就会报错,如下:
mysql create index sql_q on slow_log(sql_md5,sql_info);

ERROR 1071 (42000): Specified key was too long; max key length is 767 bytes

mysql 
这种情况就可以使用前缀索引来解决这个问题:
alter table XXX add index ind_contentl(content(100)) //100 或其它的数
 MySQL 5.5 之前, UTF8 编码只支持1-3个字节  从MYSQL5.5开始,可支持4个字节UTF编码utf8mb4,一个字符最多能有4字节,utf8mb4兼容utf8,所以能支持更多的字符集。  单列索引限制767,起因是256×3-1。这个3是字符最大占用空间(utf8)。 5.5以后,开始支持4个字节的utf8。255×4 767, 于是增加了一个参数叫做 innodb_large_prefix。 这个参数默认值是OFF。当改为ON时,允许列索引最大达到3072。 但是开启该参数后还需要开启表的动态存储或压缩: Enable this option to allow index key prefixes longer than 767 bytes (up to 3072 bytes) for InnoDB tables that use DYNAMIC or COMPRESSED row format. (Creating such tables also requires the option values innodb_file_format=barracuda and innodb_file_per_table=true.) See Section 14.8.1.7, “Limits on InnoDB Tables” for maximums associated with index key prefixes under various settings.
MySQL的普通索引和唯一索引到底什么区别? 普通索引可重复,唯一索引和主键一样不能重复。 唯一索引可作为数据的一个合法验证手段,例如学生表的身份证号码字段,人为规定该字段不得重复,那么就使用唯一索引。(一般设置学号字段为主键)
新增数据时,MySQL索引树的自调整过程 刚开始你一个表建好后,就一个数据页,就是聚簇索引的一部分,而且还是空的。若你插入数据,就是直接往这数据页里插入,也没必要给他弄索引页
【Mysql系列】——详细剖析数据库“索引”【上篇】 索引概述    在数据之外,数据库系统还维护着满足查找算法的数据结构,这些数据结构以某种方式指向我们的数据,这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。简单来说,索引是帮助Mysql高效获取数据的数据结构(有序)。 说到数据结构,大家可能一想到B+树、红黑树、二叉树等等各种各样的树就感到头疼。
【MySQL】索引 哈喽,大家好~我是保护小周ღ,本期为大家带来的是 MySQL 数据库中表的索引,详细得讲解了索引得基本概念,使用场景,如何添加索引,删除索引,展示索引,以及索引背后的数据结构,确定不来看看~ 更多相关知识敬请期待:保护小周ღ *★,°*:.☆( ̄▽ ̄)/$:*.°★*