当前位置: 首页 > news >正文

网站域名ip地址查询天津网站优化步骤

网站域名ip地址查询,天津网站优化步骤,如何套用网站模板,哈尔滨 建设网站 科技今天正好有空#xff0c;来讲个之前粉丝经常问的一个知识#xff0c;就是mysql的Innodb最大支持的索引长度是多少#xff1f;以及索引长度怎么计算#xff1f; 一、mysql的innodb引擎#xff0c;创建索引最大支持的长度是多少字节#xff1f; 不墨迹#xff0c;直接说…今天正好有空来讲个之前粉丝经常问的一个知识就是mysql的Innodb最大支持的索引长度是多少以及索引长度怎么计算 一、mysql的innodb引擎创建索引最大支持的长度是多少字节 不墨迹直接说答案 在mysql8之前索引最大长度为 767字节 在mysql8之后索引最大长度为 3072字节 然后再建个简单的表来验证一下 我使用的mysql 8的版本 建一张简单的student表表结构如下图 然后我创建一个长度大于3072字节的索引 比如我给 address 这个字段上添加索引它会提示以下错误信息 提示 key was too long; max key length is 3072 bytes 意思是 你创建的索引超出长度并且告诉你最大支持的长度是 3072 bytes。 那我刚才想要创建的 address 这个索引它具体的长度是多少呢 只有知道它的长度是多少才能确定它是不是真的超过 3072字节 想要知道 varchar(1500)  长度是多少个字节需要知道下面这个经常被问到的问题 varchar(255)里的这个255是255个字节还是255个字符 二、varchar(255)里的这个255是255个字节还是255个字符 这个255是代表255个字节还是255个字符 不墨迹直接说答案 mysql5.0之前是255个字节 mysql5.0之后是255个字符 所以上边那个问题就可以知道答案了 因为我使用的mysql版本是8是属于5.0之后的版本所以 varchar(1500) 就表示1500个字符 又因为创建这个字段的时候使用的是 utf8mb4 表示一个字符4个字节 所以 1500 x 4 6000 字节6000字节 3072字节所以上边创建这个 address 索引时就报长度过长的错误。  下面再改一下 address 这个字段的长度把它的长度改到小于3072然后再来创建这个索引试一下看是否可以成功 好把address 改成 varchar(768)  了 再试下创建索引 看到没创建成功了因为 768 x 4 3072 可以再给它加1改成769再试一下又报错了。 还有个小知识点需要知道就是 mysql建表的时候经常使用的字符串类型是varchar 创建varchar 这种数据类型时常用的字符集有 utf8mb4 和 utf8 看到没就上图这俩utf8mb4 和 utf8 utf8mb4刚才说了它的每个字符是占4个字节 那utf8呢它的每个字符占几个字节 其实 utf8 就是 utf8mb3从名字也能知道它的每个字符是占3个字节 uft8在 V8.0 还是指代的utf8mb3据说未来的会变为uft8mb4不过只是据说还暂未确定 三、你创建的索引这个索引的长度怎么计算 既然都说到这了那下面继续把mysql中 索引长度的计算一起说一下吧 mysql中普通索引的长度非常好计算普通索引的长度就是创建这个字段时这个字段类型的长度下面列出了常见的数据类型的长度 数值类型 tinyint1字节 small int2字节 medium int3字节 int4字节 bigint8字节 时间类型 date3字节 timestamp4字节 datetime8字节 除了上边常用的几种类型外char和varchar也很常用 char(n)括号里的n是几就代表几个字节 varchar(n)如果你用的是utf8也就是utf8mb3那长度是3n2如果你用的是utf8mb4那长度是4n2加2是因为 需要2字节存储字符串长度。 还有就是如果建表的时候 字段允许是null需要1个字节记录是否可以为null如果允许为null则需要 加 1 个字节存储如果不允许null则不需要加1个字节 知道了这些之后就可以计算索引的长度了。 普通单列索引的长度就是你添加索引的这个字段列的数据类型的字节长度 联合索引的长度就是你联合的这几个字段列的数据类型的字节长度相加。 下面可以使用mysql中的 explain 执行计划来验证一下 1、普通单列索引长度的验证 首先先给 age这个字段加个普通单列索引 并且如下图我在建表的时候这个age用的是int类型的int类型的长度大小是4字节 并且 允许为null所以验证期望的结果长度应该是  4 1 5 字节 查询验证一下 上图可以看到查询的走了 idx_age这个索引而且explain中显示 的key_len为5 我把那个允许null改成不允许null再试一下 看到没改成不允许null后key_len变成4了 2、多列联合索引长度的验证 首先先给这个表添加一个联合索引idx_name_age 联合的是name和age这2列 然后再确认一下 name和age这两列的数据类型 上图可以看到name是varchar类型的为了计算方便我把它的varchar长度给的是100 age使用的是int类型并且这两列都不允许null 具体的计算过程 name用的是varchar(100)   utf8mb4而且不允许null所以 name的索引长度 (4x100) 2 402 age 用的是intint的长度是4字节所以 age的索引长度是4 所以咱们的预期是最后idx_name_age 这个联合索引的长度是两者相加402 4 406 好下面 使用 explain 查询验证一下 可以看到结果跟咱们预期的一样走了 idx_name_age 这个联合索引并且idx_name_age联合索引的长度是406和咱们预期的结果一样。 ok今天就写这么多吧 纯手敲 原创不易如果觉得对你有帮助可以关注一下打赏一下感谢
http://www.ho-use.cn/article/10818032.html

相关文章:

  • app推荐网站网站如何做图片自动切换
  • 网上营销型网站建设官方网站请示
  • 虚拟主机 部署网站吗电脑网址打不开网页怎么办
  • 怎么做公益网站惠州建设公司网站
  • 展示型网站建设标准做网站需要会哪些计算机语言
  • 做网站挣钱的人检测网站建设
  • 九星市场做网站中国购物网站排名
  • 网站建设行业现状免费黄页网站
  • 做自己的网站给人的启发免费建网上商城
  • 可信网站验证 费用个人网站赚钱
  • 免费中文网站模板下载wordpress用户角色管理系统
  • 健康中国app下载宁波seo网页怎么优化
  • 网站建设公司华网天下官网wordpress页面布置
  • 莱芜十七中网站水利建设与管理司网站
  • 优秀网站建设最新报价网站图片自动轮换怎么做的
  • 余姚汽车网站建设网站设计设计目的
  • 网络网站建湖北城乡和建设官方网站
  • 上海牛巨微seo关键词优化太原自动seo
  • 网站做好了 后期怎么做网站设计行业前景
  • 唐山网站建设公司哪家好看电视剧免费的网站
  • 制作网站的公司电话号码wordpress 订单系统
  • 电话语音聊天网站建设多少钱广告资源网
  • 东莞网站建站公司网站备案密码怎么找回
  • win10系统做网站重庆南岸营销型网站建设公司推荐
  • 销售网站开发意义上海有几个区县
  • 制作网站支付方式电子商务网站开发方式
  • 长沙网站建设推广服务eclipes网站建设教程
  • 哪家微信网站建设好濮阳建站公司流程
  • 也可以用SEO优化网站建设价格
  • 邳州网站建设广告页面制作