- 浏览: 238996 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
thepastsee:
304572183股票交流 欢迎加入
实时股票 -
345161974:
很不错,我第一个接触的CSS卡片布局效果,多谢
css卡片效果
MySQL的每个单表中所创建的索引长度是有限制的,且对不同存储引擎下的表有不同的限制。查看索引可以使用show index from tbl_name命令,语法见:http://blog.haohtml.com/index.php/archives/1889
在MyISAM表中,创建组合索引时,创建的索引长度 不能超过1000,注意这里索引的长度的计算是根据表字段设定的长度来标量的,例如:
create table test(
id int,name1 varchar(300),
name2 varchar(300),
name3 varchar(500)
)charset=latin1 engine=myisam;create index test_name on test(name1,name2,name3);
此时报错:Specified key was too long;max key length is 1000 bytes.
修改表结构:alter table test convert to charset utf8;
create index test_name3 on test(name3).
此时warning:Specified key was too long;max key length is 1000 bytes.但是索引创建成功,查看表结构可以看到创建的索引是一个前缀索引:‘key test_name3(name3(333))’
得出的结论是: 对于myisam表,如果创建组合索引 ,所创建的索引长度和不能超过1000 bytes,否则会报错,创建失败;而对于myisam的单列索引 ,最大长度也不能超过1000,否则会报警,但是创建成功,最终创建的是前缀索引(取前 333 个字节)。
在Innodb表中,创建组合索引:
create table test1(
id int,name1 varchar(300),
name2 varchar(300),
name3 varchar(500)
)charset=latin1 engine=innodb;
create index test1_name on test(name1,name2,name3);
此时给出warning:Specified key was too long;max key length is 767 bytes.
修改表结构:alter table test1 convert to charset utf8;
create index test1_name3 on test(name3).
此时给出warning:Specified key was too long;max key length is 767 bytes.
得出的结论是: 对于创建innodb的组合索引 ,如果各个列中的长度不超过767 ,则不再计算所有列的总长度,如果有超过767的,则给出报警,索引最后创建成功,但是对于超过767字节的列取前缀索引;而对于 innodb的单列索引 ,超过767的,给出warning,最终索引创建成功,取前缀索引(取前255 字节)。
发表评论
-
mysql_group by 奇怪问题解决
2011-10-22 13:32 989我回去查了一下关于mysql group by 奇怪的现像, ... -
mysql 密码
2011-09-26 17:46 768linux ---- ... -
转___MySQL Order By索引优化
2011-09-26 17:23 964MySQL Order By索引优化 ... -
mysql调优_20转
2011-06-22 15:24 749http://coolshell.cn/articles ... -
数据库设计
2011-06-22 11:43 695http://www.cnblogs.com/DBFocus/ ... -
mysql_error_code
2011-05-13 21:44 766原创 mysql出错代码及 ... -
sql之left join、right join、inner join的区别_转
2011-04-17 23:37 895http://www.cnblogs.com/pcjim ... -
mysql_p150 error_转
2011-04-17 21:06 777ERROR ... -
mysql_序列表_02
2011-03-27 11:08 700lkjlkj -
mysql_投档项目终结
2011-03-21 21:41 651kljljlkj;lkj -
mysql_批量数据脚本..
2011-03-21 20:29 811lkjlkj -
window 启动仃止mysql
2011-03-17 23:32 966[导读]在非NT版本的Windows中,在后台启动mysqld ... -
flush privileges 意思_转转转
2011-03-17 23:31 1483test是mysql安装好后,就有的一个示例数据库 楼主可以 ... -
mysql 权限列表_转转
2011-03-17 23:30 1028菜鸟课堂:MySQL权限的详细解答 2009-09-02 1 ... -
mysql 存储过程参数_可能乱码
2011-03-17 01:25 806DELIMITER $$ DROP PROCEDURE ... -
mysql存储过程_游标_项目练习
2011-03-17 01:04 917;lk;kl;kl;lk -
mysql 权限管理_转转转
2011-03-15 22:21 1059Mysql用户与权限管理 ... -
给mysql加上 rownum _转
2011-03-12 23:01 1415转 http://home.21cto.com/foru ... -
MySQL动态行转列_zhuan
2011-03-05 18:49 824网上的都是一些静态的,用CASE WHEN结构实现。所以我写了 ... -
MYSQL中删除重复记录的方法_zhuanzhuan
2011-03-05 18:48 870在实际应用中,很可能会碰到一些需要删除某些字段的重复记录, ...
相关推荐
mysql索引长度计算规则
### MySQL索引背后的数据结构及算法原理 #### 数据结构及算法基础 索引在数据库中的作用至关重要,它能够显著提高数据检索的速度。正如标题所提到的,“MySQL索引背后的数据结构及算法原理”这一主题是技术面试中...
#### 二、查看MySQL索引的方法 在MySQL中,可以通过多种方式来查看数据库中的索引信息。其中一种常用的方法是利用`INFORMATION_SCHEMA.STATISTICS`表来获取相关信息。具体的SQL语句如下: ```sql SELECT * FROM ...
创建索引 数据索引 课程目标 理解 —— 创建索引的语法;...长度:表示使用列的前多少个字符创建索引。使用列的一部分创建索引可以使索引文件大大减小,从而节省磁盘空间。BLOB或TEXT列必须用前缀索引。 创建索引
MySQL中索引的类型 一般可分为四类: 普通索引:最普通的索引 唯一索引:索引列的值必须唯一,但允许有空值 主键索引:一种特殊的唯一索引,不允许有空值 联合索引:索引列有多个字段,使用时需要满足最左前缀...
MySQL索引长度限制是数据库设计中的一个重要因素,它直接影响到数据检索的速度和存储空间的效率。在MySQL中,不同的存储引擎对索引长度有不同的限制,这主要是由它们的内部实现和设计目标决定的。 首先,InnoDB引擎...
索引长度的计算公式为:`(Character Set:utf8mb4=4,utf8=3,gbk=2,latin1=1) * 列长度 + 1(允许null) + 2(变长列)`。 索引失效 ---------- 索引失效是指 MySQL 不能使用索引来加速查询,导致查询效率下降。索引...
此外,InnoDB对索引长度有限制:对于主键,总长度不能超过767字节;对于辅助索引,总长度不能超过3072字节。 在设计索引时,应考虑以下几点: 1. 避免过大的索引:减少不必要的列或缩短列的长度可以减小索引大小。 ...
MySQL中的索引是一种数据库结构,用于加速数据查询速度。索引可以类比为书籍的目录,使得数据库系统能更快地定位到所需的数据行。在实验报告中,我们主要涉及了索引的创建、管理和维护,以及对不同类型的索引的操作...
MySQL 数据库索引详解 MySQL 数据库索引是一种特殊的数据库结构,可以快速查询数据库表中特定记录。索引是提高数据库性能的重要方式。...注意添加索引的长度必须小于建表时给字段定义的长度,也可以不给长度。
`CHAR(M)`定义的列长度固定,它会在右侧填充空格以达到指定长度,检索时不删除这些空格,这在存储定长数据时较为高效,且其上的索引效率较高。然而,`CHAR`会浪费空间,因为即使存储的字符串比定义的长度短,也会...
- **创建索引**:CREATE INDEX 或 ALTER TABLE 命令,可以指定索引是否唯一以及列的长度。 - **删除索引**:DROP INDEX命令。 - **查看索引**:SHOW INDEX FROM命令。 在何时建立索引的问题上,应考虑以下因素: - ...
MySQL索引优化是数据库性能提升的关键之一。在深入理解索引优化的过程中,我们需要关注几个核心概念,如索引类型、键长度(key_len)、参考值(ref)以及全表扫描(type=ALL)和文件排序(Using filesort)。 首先...
其中,`index_name`是索引的名称,`table_name`是表名,`column_name`是字段名,`length`可选,用于限制索引的长度。`USING`关键字指定索引类型,默认为BTREE。`COMMENT`可以添加对索引的描述。此外,可以使用`ALTER...
MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。 打个比方,如果合理的设计且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的MySQL就是一个人力三轮车。 索引分...
- **索引长度**:过长的字段作为索引会导致索引占用过多空间,降低效率。 - **主键选择**:通常推荐使用自增整数作为主键,因为这样可以保持索引的紧凑性,利于查询。 - **索引选择性**:索引的选择性越高,查询效率...
- 索引列长度有限制,InnoDB中索引列最大200个字符。 - 选择性高且经常被查询的列优先考虑作为索引。 - 联合索引中,选择性高的列放在前面,小的列也优先,以提高查询效率。 **建立索引策略:** - 根据业务需求和...