`

#mysql 笔记#索引长度限制

阅读更多
http://dev.mysql.com/doc/refman/5.5/en/create-index.html
Prefix support and lengths of prefixes (where supported) are storage engine dependent. For example, a prefix can be up to 1000 bytes long for MyISAM tables, and 767 bytes for InnoDB tables。

1 character:latin1->1 byte,gbk-> 2 bytes,utf8 -> 3 bytes;

不同引擎的前缀长度限制不同
myisam:1000 bytes,索引总长度不能超过1000byte
innodb:767 bytes,索引中单列的前缀长度不能超过767byte


DROP TABLE `tb_index_myisam`;
CREATE TABLE tb_index_myisam (
id INT NOT NULL AUTO_INCREMENT,
url VARCHAR(255) NOT NULL,
inode VARCHAR(512) NOT NULL,
dt DATETIME,
PRIMARY KEY (id),
UNIQUE (url, inode(78)) COMMENT 'inode,3*(255+78)=999<1000,  more than78 is error'
)ENGINE=MYISAM DEFAULT CHARSET=utf8;

DROP TABLE `tb_index_inno`;
CREATE TABLE tb_index_inno (
id INT NOT NULL AUTO_INCREMENT,
url VARCHAR(255) NOT NULL,
inode VARCHAR(512) NOT NULL,
dt DATETIME,
PRIMARY KEY (id),
UNIQUE (url, inode(255)) COMMENT 'inode,3*255=765<767 ,  more than 255 is error'
)ENGINE=INNODB DEFAULT CHARSET=utf8;
分享到:
评论

相关推荐

    辛星笔记之InnoDB索引

    ### 辛星笔记之InnoDB索引 #### 第一节:算法基础 ##### 二分查找法 二分查找法(Binary Search),又称折半查找法,是一种高效的查找算法,适用于有序数组。它的工作原理是首先将目标值与数组中间位置的元素进行...

    MYSQL学习笔记-索引参照.pdf

    每个表最多可以有16个索引,且每个索引的总长度至少为256字节,但大多数存储引擎允许更高的限制。 首先,我们要理解索引的基本类型: 1. **普通索引**(Non-Unique Index):是最基础的索引类型,对索引列没有唯一...

    mysql基础笔记

    ### MySQL基础笔记 #### 1.1 MySQL 表复制 在MySQL中,有时我们需要复制一个现有的表结构或者数据。这可以通过以下两种方式实现: - **使用`LIKE`关键字**: 如果我们只想复制表结构而不复制数据,可以使用`LIKE`...

    mysql索引笔记1

    - **创建索引**:CREATE INDEX 或 ALTER TABLE 命令,可以指定索引是否唯一以及列的长度。 - **删除索引**:DROP INDEX命令。 - **查看索引**:SHOW INDEX FROM命令。 在何时建立索引的问题上,应考虑以下因素: - ...

    MySQL的基础知识笔记

    ### MySQL的基础知识笔记 #### 一、背景介绍 MySQL 是一款非常流行的开源关系型数据库管理系统。自1979年创建以来,它已经成为全球最广泛使用的数据库之一。MySQL 的应用场景非常广泛,包括但不限于: - **网站...

    mysql笔记.docx

    - 字段名长度不超过30个字符,过长时使用缩写。 - 单词构成的字段不推荐使用缩写,如`description`。 - 多单词字段采用驼峰命名法,如`lastLoginTime`。 5. **唯一性约束**: - 创建表时通过`UNIQUE`约束设置...

    MySQL数据库学习笔记.pdf

    在MySQL中,标识符如数据库名、表名、列名等有一定的命名规则和限制,比如最大长度为64个字符,某些字符不能使用。同时,MySQL的数据库和表在操作系统下对应为目录和文件,所以它们的大小写敏感性取决于操作系统的...

    MySQL优化文档笔记

    在MySQL 8.x中,`VARCHAR`也开始支持全文索引。 日期时间类型如`DATETIME`用于记录日期和时间,无时区信息,存储效率在不同版本中有所改变。如果需要考虑时区,可以使用`TIMESTAMP`。 总结来说,MySQL优化涵盖了从...

    joe_MySQL笔记

    - **`max_connections=最大连接数`**: 最大连接数的设定,用于限制同时连接到MySQL服务器的客户端数量。 **启动与停止MySQL服务**: - `net stop/start mysql服务名`: 分别用于停止和启动MySQL服务。 - `mysql -h ...

    mysql数据库高级笔记

    1. **变长字段长度列表**:对于 VARCHAR、VARBINARY、TEXT 或 BLOB 类型等变长字段,InnoDB 需要知道每个字段实际占用的空间大小,因此会在记录的开始处存储一个变长字段长度列表。 2. **NULL 值列表**:对于允许 ...

    MySQL学习笔记

    创建复合索引、避免全表扫描、合理设置索引长度等都是优化策略。同时,要关注索引维护的成本,防止过度索引。 3. **SQL优化**:编写高效的SQL语句可以显著提高数据库性能。避免在WHERE子句中使用函数,减少子查询,...

    MySQL笔记、面试题

    以下是一些关于MySQL的重要知识点,这些内容可能来自于提供的“MySQL笔记、面试题”文本文件。 1. 数据库基础概念: - 数据库:存储和管理数据的系统,如MySQL。 - RDBMS:关系型数据库管理系统,基于表格的数据...

    mysql笔记.zip

    MySQL是一种广泛使用的开源关系型...总之,MySQL笔记涵盖了从基本概念到高级特性的广泛内容,对于学习和掌握MySQL数据库管理至关重要。通过深入学习并实践这些笔记中的知识,可以提升你在数据库管理和开发方面的技能。

    MySql学习笔记(详细)

    ### MySQL学习笔记(详细) #### 一、数据库操作 MySQL是一种关系型数据库管理系统,通过一系列命令来进行数据库的管理和数据的处理。以下是一些常见的数据库操作命令: - **连接MySQL服务器**: - `mysql -u ...

    mysql数据库笔记 - 副本.zip

    5. 索引:索引能加快数据检索速度,常见的有主键索引(唯一且非空)、唯一索引(唯一但可为空)、普通索引(无唯一性要求)和全文索引(用于全文搜索)。 6. 视图:视图是虚拟表,基于一个或多个表的查询结果。它...

    MySQL优化笔记

    ### MySQL优化笔记 #### MySQL 5.5.35 常规思路 在数据库管理与维护中,MySQL性能优化是提升系统响应速度、降低资源消耗的重要手段之一。本篇笔记将围绕MySQL 5.5.35版本展开,探讨其优化的三大方向及其具体实施...

    MySQL笔记之索引的使用

    《MySQL笔记之索引的使用》 在数据库管理中,索引是一种至关重要的工具,它极大地提升了查询效率,降低了数据库系统的性能开销。本文将深入探讨MySQL中的索引概念、类型及其创建方法。 首先,理解索引的基本原理至...

Global site tag (gtag.js) - Google Analytics