length只是计算值的字节数,并不会计算存储的开销.
参考资料:
MySQL字段长度、取值范围、存储开销
MySQL存储要求
由MySQL支持的列类型列在下面.下列代码字母用于描述中:
M
D
方括号("["和"]")指出可选的类型修饰符的部分.
注意,如果你指定一个了为ZEROFILL,MySQL将为该列自动地增加UNSIGNED属性.
TINYINT[(M)] [UNSIGNED] [ZEROFILL]
SMALLINT[(M)] [UNSIGNED] [ZEROFILL]
MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL]
INT[(M)] [UNSIGNED] [ZEROFILL]
INTEGER[(M)] [UNSIGNED] [ZEROFILL]
这是INT的一个同义词.
BIGINT[(M)] [UNSIGNED] [ZEROFILL]
FLOAT[(M,D)] [ZEROFILL]
DOUBLE[(M,D)] [ZEROFILL]
DOUBLE PRECISION[(M,D)] [ZEROFILL]
REAL[(M,D)] [ZEROFILL]
这些是DOUBLE同义词.
DECIMAL[(M[,D])] [ZEROFILL]
NUMERIC(M,D) [ZEROFILL]
这是DECIMAL的一个同义词.
DATE
DATETIME
TIMESTAMP[(M)]
TIME
CHAR(M) [BINARY]
[NATIONAL] VARCHAR(M) [BINARY]
TINYBLOB
TINYTEXT
BLOB
TEXT
MEDIUMBLOB
MEDIUMTEXT
LONGBLOB
LONGTEXT
添加语法: ALTER TABLE table_name ADD KEY(column_name(prefix_length));
如何确定前缀索引长度?
可以通过计算选择性来确定前缀索引的选择性,计算方法如下
全列选择性:
SELECT COUNT(DISTINCT column_name) / COUNT(*) FROM table_name;
某一长度前缀的选择性
SELECT COUNT(DISTINCT LEFT(column_name, prefix_length)) / COUNT(*) FROM table_name;
当前缀的选择性越接近全列选择性的时候,索引效果越好.
参考文章:
MySQL索引操作命令详解
MySQL 前缀索引
以上就是土嘎嘎小编为大家整理的mysql长度怎么算相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!