首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MySQL索引的长度限制

参考: http://dinglin.iteye.com/blog/1681332 单列索引的长度限制     (5.6里面默认不能超过767bytes,5.7不超过3072bytes):     起因是...--- by 阿里-丁奇 在MySQL5.6里默认 innodb_large_prefix=0 限制单列索引长度不能超过767bytes    官网文档:https://dev.mysql.com/doc.../refman/5.6/en/innodb-parameters.html#sysvar_innodb_large_prefix 注意: 在MySQL5.6里面,设置了innodb_large_prefix...在MySQL5.7里默认 innodb_large_prefix=1 解除了767bytes长度限制,但是单列索引长度最大还是不能超过3072bytes 联合索引的长度限制 (不能超过3072bytes...又由于InnoDB的聚簇索引结构,一个二级索引要包含主键索引,因此每个单个索引不能超过4k (极端情况,primay-key和某个二级索引都达到这个限制)。

5.4K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Mysql覆盖索引_mysql索引长度限制

    只扫描索引而无需回表的优点: 1.索引条目通常远小于数据行大小,只需要读取索引,则mysql会极大地减少数据访问量。...3.一些存储引擎如myisam在内存只缓存索引,数据则依赖于操作系统来缓存,因此要访问数据需要一次系统调用 4.innodb的聚簇索引,覆盖索引对innodb表特别有用。...当发起一个索引覆盖查询时,在explain的extra列可以看到using index的信息 覆盖索引的坑:mysql查询优化器会在执行查询前判断是否有一个索引能进行覆盖,假设索引覆盖了where条件的字段...,但不是整个查询涉及的字段,mysql5.5和之前的版本也会回表获取数据行,尽管并不需要这一行且最终会被过滤掉。...2.mysql不能在索引执行LIke操作。mysql能在索引做最左前缀匹配的like比较,但是如果是通配符开头的like查询,存储引擎就无法做比较匹配。

    7.9K30

    技术分享 | MySQL 索引长度限制的案例

    前两天同事提了一个问题,MySQL 5.7 给某张表字段增加一个单键值索引,提示了如下错误, 一些背景信息: 表设置的字符集,utf8mb4 。 表的存储引擎,MyISAM 。...我们知道,MySQL 和 Oracle 在索引上最大的一个区别,就是索引存在长度限制。如果是超长键值,可以支持创建前缀的索引,顾名思义,取这个字段的前多少个字符/字节作为索引的键值。...对于非二进制的字符串类型(CHAR、VARCHAR、TEXT),前缀会按照字符个数计算,对二进制的字符串类型(BINARY、VARBINARY、BLOB),前缀会按照字节个数计算,因此,当对非二进制的字符串列明确前缀长度的时候...MySQL 官方手册索引的章节提到了,前缀索引长度限制是和引擎相关的,如果用的是 InnoDB ,前缀上限是 767 字节,当启用 innodb_large_prefix 时,上限可以达到 3072 字节...三个字节的 UTF-8 最大能编码的 Unicode 字符是 0xffff ,也就是 Unicode 的基本多文种平面(BMP)。

    3.9K30

    小白学习MySQL - 索引键长度限制的问题

    最近在工作,碰到了个很诡异的问题,需求是在两个MySQL数据库为同一张表增加一个二级索引(单键值字段(x varchar(500))),表结构和加索引的语法,都是相同的,但是一个库执行成功了,一个执行失败了...MySQL还会对索引键的长度限制?...我们首先从《MySQL 5.6 Reference Manual》的"CREATE INDEX"章节看起,他指出如果是字符串类型的字段,可以指定字符串前多少位创建索引键值,而且键值前缀是存在上限的,在CREATE.../en/create-index.html 前缀的长度限制,是和存储引擎相关的。...再看一下《MySQL 5.7 Reference Manual》,相同章节,多了这段描述,是说当使用CREATE INDEX时,如果指定的索引前缀长度超过了列定义的长度上限,则会出现以下两种场景, 非唯一索引

    3.3K30

    get请求的长度限制是多少_url长度限制为多少

    Http get方法提交的数据大小长度并没有限制,Http协议规范没有对URL长度进行限制。 目前说的get长度限制,是特定的浏览器及服务器对它的限制。...Microsoft Internet Information Server(IIS):对IIS浏览器URL的最大长度为16384个字符。 理论上讲,post是没有大小限制的。...Tomcat下默认post长度为2M,可通过修改conf/server.xml的“maxPostSize=0”来取消对post大小的限制。...注意:(若长度超限,则服务端返回414标识) 1、首先即使有长度限制,也是限制的是整个URI长度,而不仅仅是你的参数值数据长度。...2、HTTP协议从未规定GET/POST的请求长度限制是多少 3、所谓的请求长度限制是由浏览器和web服务器决定和设置的,浏览器和web服务器的设定均不一样,这依赖于各个浏览器厂家的规定或者可以根据web

    5.9K40

    html限制输入文本长度_get请求url长度限制多少位

    URL长度限制(单位:字符) IE : 2803 Firefox:65536 Chrome:8182 Safari:80000 Opera:190000 2....Post数据的长度限制 Post数据的长度限制与url长度限制类似,也是在Http协议没有规定长度限制,长度限制可以在服务器端配置最大http请求头长度的方式来实现。 3....Cookie的长度限制 Cookie的长度限制分这么几个方面来总结。...(2) 浏览器所允许的每个Cookie的最大长度 Firefox和Safari:4079字节 Opera:4096字节 IE:4095字节 (3) 服务器Http请求头长度限制。...对于LocalStorage的长度限制,同Cookie的限制类似,也是浏览器针对域来限制,只不过cookie限制的是个数,LocalStorage限制的是长度: Firefox\Chrome\Opera

    3K20

    详解 mysql int 类型长度值问题

    秉着好奇心, 打开了 google ~ 引入大神的解答. mysql 在建表的时候 int 类型后的长度代表什么? 是该列允许存储值的最大宽度吗?...所以我在网上查阅了一些资料, 也仔细的看了 mysql 手册关于 int data type 的说法. 以下是每个整数类型的存储和范围 (来自 mysql 手册) ?...每个整数类型的存储和范围.png 表格一共有四列分别表式: 字段类型, 占用字节数, 允许存储的最小值, 允许存储的最大值....mysql 我们看到现在我的 number 字段, 长度 (M)=5, 属性 =UNSIGNED ZEROFILL(无符号, 用 0 来填充位数), 设置这个属性后我往表时插入数据, 系统会自动把 number...mysql 手册上还有这么一句话 "当 mysql 为某些复杂的联结 (join) 生成临时表时,你可能会遇到问题,因为在这种情况下,mysql 信任地认为所有的值均适合原始的列宽度".

    3.6K20

    Http请求URL长度限制

    http 1.1 协议原文 http 1.1 协议对url的长度是不受限制的,协议原文: // https://www.ietf.org/rfc/rfc2616.txt 3.2.1 General...翻译: HTTP协议不对URI的长度作事先的限制,服务器必须能够处理任何他们提供资源的URI,并且应该能够处理无限长度的URIs,这种无效长度的URL可能会在客户端以基于GET方式的请求时产生...注:服务器在依赖大于255字节的URI时应谨慎,因为一些旧的客户或代理实现可能不支持这些长度。...协议未明确对url进行长度限制,但在真正实现,url的长度还是受到限制的,一是服务器端的限制,二就是浏览器端的限制。...长度限制 服务器端 nginx nginx服务器默认的限制是4K或者8K 设置参数:large_client_header_buffers 浏览器端 浏览器 最大长度(字符数) 备注 Internet

    3.3K30

    String还有长度限制?是多少?

    前言 话说JavaString是有长度限制的,听到这里很多人不禁要问,String还有长度限制?是的有,而且在JVM编译还有规范,而且有的家人们在面试的时候也遇到了。...本人就遇到过面试的时候问这个的,而且在之前开发的也真实地遇到过这个String长度限制的场景(将某固定文件转码成Base64的形式用字符串存储,在运行时需要的时候在转回来,当时文件比较大),那这个规范限制到底是怎么样的...[1240] 那么String既然是数组存储那数组会有长度限制吗?是的有限制,但是是在有先提条件下的,我们看看String返回length的方法。...[1240] 由此我们看到返回值类型是int类型,Java定义数组是可以给数组指定长度的,当然不指定的话默认会根据数组元素来指定: int[] arr1 = new int[10]; // 定义一个长度为...10的数组 int[] arr2 = {1,2,3,4,5}; // 那么此时数组的长度为5 整数在java是有限制的,我们通过源码来看看int类型对应的包装类Integer可以看到,其长度最大限制

    2.7K10

    varchar有最大长度限制

    先说结论,mysql 的 varchar 是有最大长度限制的,这个值是 65535 个字节。 varchar(100),这个 100 的单位是啥,这个单位其实在不同版本是不一样的。...另外 char 也是有最大长度限制的,最大长度为 255, 即 char 类型最多只能保存 255 个字符,char(256) 这都是错误的写法,可以看下面的例子。...也就是说在 varchar 类型,除了字符本身实际占用的空间外,还需要 1 个或 2 个字节来声明这个字符的长度。...65535 个字节呢,其实这个是受 mysql 另一个规则限制导致的,mysql 规定了每行数据大小不能超过 65535 个字节。...最后再看一个综合例子,我们创建一个表,采用 UTF8 字符集,添加两个非空字段,分别为 char 和 varchar 类型,char 类型长度给定为 255。

    14.8K21
    领券