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;
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;
发表评论
-
linux清除mysql占用cache
2013-11-01 10:55 2045在linux内部将cache分为2种: 1、write/rea ... -
规范、经验
2013-11-04 17:23 598尽量不用NULL列 query cach ... -
mysql模拟队列
2013-05-14 13:42 1097-- 初始化数据 DROP TABLE IF EXIST ... -
高性能mysql[第3版]--笔记
2013-05-03 23:35 06.8 6.8.1 mysql构建消息队列 se ... -
生成随机字符串
2013-04-30 10:41 0DELIMITER $$ CREATE FUNCTIO ... -
复制笔记
2013-04-27 17:48 0http://dev.mysql.com/doc/refman ... -
[整理]mysql导入导出
2013-04-24 22:40 0方案一:拷贝物理文件(innodb, innodb_file_ ... -
【整理中】mysql字符集使用
2013-04-24 22:29 0show variables like 'characte ... -
MYSQL监控内容整理
2013-04-24 13:40 0内容 硬解析,软解析,等待事件,表空间,索引,触发器,alte ... -
无限级联分类查询
2013-04-24 09:36 0DROP TABLE IF EXISTS location ... -
mysqldbcompare --使用
2013-04-07 09:39 0http://dev.mysql.com/doc/workbe ... -
MYSQL 发送数据大小计算公式
2013-03-29 16:20 889引用:http://www.realzyy.com/?p=15 ... -
mysqldump简单使用
2013-01-21 15:27 0mysqldump -B或者--databases:备份指定数 ... -
linux经常登入登出mysql重复输入密码
2013-01-16 17:51 974经常登入、登出mysql,尤其是密码重新输入比较复杂时,使用& ... -
mysql存储过程实现行转列
2012-08-30 16:24 2146把表t_rows中的数据转换 ... -
mysql 判断字符串是否是数字
2012-07-12 10:21 3016查询表table_name中col_name(字符串类型)的值 ... -
[转载]drop 大表效率问题
2012-06-15 09:32 46http://www.mysqlops.com/2011/05 ... -
monyog安装文件
2012-03-26 16:29 1279monyog安装包,绿色版 -
linux sysbench+mysql
2012-02-16 17:25 0一、sysbench安装 tar -zxvf ... -
收藏的常用命令
2011-12-28 15:45 0--innobackup 备份到本机上并进行压缩 inn ...
相关推荐
### 辛星笔记之InnoDB索引 #### 第一节:算法基础 ##### 二分查找法 二分查找法(Binary Search),又称折半查找法,是一种高效的查找算法,适用于有序数组。它的工作原理是首先将目标值与数组中间位置的元素进行...
每个表最多可以有16个索引,且每个索引的总长度至少为256字节,但大多数存储引擎允许更高的限制。 首先,我们要理解索引的基本类型: 1. **普通索引**(Non-Unique Index):是最基础的索引类型,对索引列没有唯一...
### MySQL基础笔记 #### 1.1 MySQL 表复制 在MySQL中,有时我们需要复制一个现有的表结构或者数据。这可以通过以下两种方式实现: - **使用`LIKE`关键字**: 如果我们只想复制表结构而不复制数据,可以使用`LIKE`...
- **创建索引**:CREATE INDEX 或 ALTER TABLE 命令,可以指定索引是否唯一以及列的长度。 - **删除索引**:DROP INDEX命令。 - **查看索引**:SHOW INDEX FROM命令。 在何时建立索引的问题上,应考虑以下因素: - ...
### MySQL的基础知识笔记 #### 一、背景介绍 MySQL 是一款非常流行的开源关系型数据库管理系统。自1979年创建以来,它已经成为全球最广泛使用的数据库之一。MySQL 的应用场景非常广泛,包括但不限于: - **网站...
- 字段名长度不超过30个字符,过长时使用缩写。 - 单词构成的字段不推荐使用缩写,如`description`。 - 多单词字段采用驼峰命名法,如`lastLoginTime`。 5. **唯一性约束**: - 创建表时通过`UNIQUE`约束设置...
在MySQL中,标识符如数据库名、表名、列名等有一定的命名规则和限制,比如最大长度为64个字符,某些字符不能使用。同时,MySQL的数据库和表在操作系统下对应为目录和文件,所以它们的大小写敏感性取决于操作系统的...
在MySQL 8.x中,`VARCHAR`也开始支持全文索引。 日期时间类型如`DATETIME`用于记录日期和时间,无时区信息,存储效率在不同版本中有所改变。如果需要考虑时区,可以使用`TIMESTAMP`。 总结来说,MySQL优化涵盖了从...
- **`max_connections=最大连接数`**: 最大连接数的设定,用于限制同时连接到MySQL服务器的客户端数量。 **启动与停止MySQL服务**: - `net stop/start mysql服务名`: 分别用于停止和启动MySQL服务。 - `mysql -h ...
1. **变长字段长度列表**:对于 VARCHAR、VARBINARY、TEXT 或 BLOB 类型等变长字段,InnoDB 需要知道每个字段实际占用的空间大小,因此会在记录的开始处存储一个变长字段长度列表。 2. **NULL 值列表**:对于允许 ...
创建复合索引、避免全表扫描、合理设置索引长度等都是优化策略。同时,要关注索引维护的成本,防止过度索引。 3. **SQL优化**:编写高效的SQL语句可以显著提高数据库性能。避免在WHERE子句中使用函数,减少子查询,...
以下是一些关于MySQL的重要知识点,这些内容可能来自于提供的“MySQL笔记、面试题”文本文件。 1. 数据库基础概念: - 数据库:存储和管理数据的系统,如MySQL。 - RDBMS:关系型数据库管理系统,基于表格的数据...
MySQL是一种广泛使用的开源关系型...总之,MySQL笔记涵盖了从基本概念到高级特性的广泛内容,对于学习和掌握MySQL数据库管理至关重要。通过深入学习并实践这些笔记中的知识,可以提升你在数据库管理和开发方面的技能。
### MySQL学习笔记(详细) #### 一、数据库操作 MySQL是一种关系型数据库管理系统,通过一系列命令来进行数据库的管理和数据的处理。以下是一些常见的数据库操作命令: - **连接MySQL服务器**: - `mysql -u ...
5. 索引:索引能加快数据检索速度,常见的有主键索引(唯一且非空)、唯一索引(唯一但可为空)、普通索引(无唯一性要求)和全文索引(用于全文搜索)。 6. 视图:视图是虚拟表,基于一个或多个表的查询结果。它...
### MySQL优化笔记 #### MySQL 5.5.35 常规思路 在数据库管理与维护中,MySQL性能优化是提升系统响应速度、降低资源消耗的重要手段之一。本篇笔记将围绕MySQL 5.5.35版本展开,探讨其优化的三大方向及其具体实施...
《MySQL笔记之索引的使用》 在数据库管理中,索引是一种至关重要的工具,它极大地提升了查询效率,降低了数据库系统的性能开销。本文将深入探讨MySQL中的索引概念、类型及其创建方法。 首先,理解索引的基本原理至...