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

资阳网站开发汉阴网站建设

资阳网站开发,汉阴网站建设,香水网站建设规划书,天津市武清区住房建设网站在 MySQL 中,索引前缀长度选择为 191 的常见原因主要与 字符集编码 和 索引长度限制 相关,具体解释如下: 1. 字符集编码的影响 utf8mb4 字符集: MySQL 的 utf8mb4 字符集每个字符最多占用 4 个字节(相比 utf8 的 3 字…

在 MySQL 中,索引前缀长度选择为 191 的常见原因主要与 字符集编码 和 索引长度限制 相关,具体解释如下:


1. 字符集编码的影响

  • utf8mb4 字符集
    • MySQL 的 utf8mb4 字符集每个字符最多占用 4 个字节(相比 utf8 的 3 字节,utf8mb4 支持完整的 Unicode 字符,包括表情符号)。
    • 如果索引字段使用 utf8mb4 编码,索引的长度限制会以字节为单位计算。
  • 索引长度限制
    • 在 MySQL 的 InnoDB 存储引擎中,默认情况下单个索引的最大长度为 767 字节(对于 COMPACT 或 REDUNDANT 行格式)。
    • 因此,当使用 utf8mb4 编码时,767 字节 ÷ 4 字节/字符 ≈ 191 字符

2. 为什么是 191 而不是其他数值?

  • 平衡性能与存储
    • 如果索引前缀长度过短(如 50 或 100),可能会导致索引的选择性(即唯一值的比例)降低,从而影响查询性能。
    • 如果前缀长度过长(如 255),可能会超出索引的长度限制,导致索引创建失败或性能下降。
    • 191 是一个折中的选择,既能覆盖大部分查询需求,又不会超出索引的长度限制。
  • 历史原因
    • 在 MySQL 5.5 及更早版本中,utf8mb4 尚未普及,utf8 编码每个字符占用 3 字节,因此索引长度限制为 767 字节 ÷ 3 ≈ 255 字符。
    • 随着 utf8mb4 的普及,191 字符成为新的标准选择。

3. 示例说明

假设有一个表 users,其中有一个 email 字段,类型为 VARCHAR(255),并使用 utf8mb4 编码:

CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY,email VARCHAR(255) NOT NULL,KEY `email_index` (`email`(191)) USING BTREE
);

  • 索引长度计算
    • email 字段最多 255 字符,使用 utf8mb4 编码时,每个字符最多 4 字节。
    • 索引前缀长度为 191,因此索引占用的最大字节数为 191 × 4 = 764 字节,小于 InnoDB 的默认索引长度限制 767 字节。
  • 查询性能
    • 如果查询条件是 WHERE email LIKE 'example%',索引前缀 email(191) 可以有效加速查询。
    • 如果前缀长度过短(如 50),可能会导致索引的选择性降低,查询性能下降。

4. 特殊情况

  • 启用 innodb_large_prefix
    • 在 MySQL 5.7.7 及以上版本中,默认启用了 innodb_large_prefix,允许单个索引的最大长度增加到 3072 字节
    • 在这种情况下,可以选择更长的前缀长度(如 255 字符),但需要权衡存储和性能。
  • 其他存储引擎
    • MyISAM 存储引擎的索引长度限制为 1000 字节,因此对于 utf8mb4 编码,前缀长度可以达到 1000 ÷ 4 = 250 字符

5. 总结

  • 191 是默认选择
    • 在 InnoDB 存储引擎中,使用 utf8mb4 编码时,767 字节的索引长度限制导致前缀长度为 191 字符。
    • 这是一个平衡性能和存储的合理选择。
  • 根据需求调整
    • 如果查询条件需要更高的选择性,可以增加前缀长度(如 255),但需要确保不超过索引长度限制。
    • 如果存储空间有限,可以减少前缀长度(如 100),但可能会影响查询性能。
  • 版本和配置的影响
    • 在 MySQL 5.7.7 及以上版本中,启用 innodb_large_prefix 后,可以选择更长的前缀长度。

通过合理选择索引前缀长度,可以在保证查询性能的同时,优化存储空间的使用。


文章转载自:

http://MIK1AujF.wwgpy.cn
http://S5Pqa6Yk.wwgpy.cn
http://hmZfBr1a.wwgpy.cn
http://LQHnU0OQ.wwgpy.cn
http://3HbjSiek.wwgpy.cn
http://Dde7oIWq.wwgpy.cn
http://7X1btlZn.wwgpy.cn
http://i4rFY4du.wwgpy.cn
http://6mnDvkpb.wwgpy.cn
http://Uq2eYvrD.wwgpy.cn
http://Wkjg9vT7.wwgpy.cn
http://MbzGLqjK.wwgpy.cn
http://Abu9SAui.wwgpy.cn
http://6xw8auhp.wwgpy.cn
http://NPgSmLkL.wwgpy.cn
http://RmrG3DVP.wwgpy.cn
http://0q6doA5v.wwgpy.cn
http://72I977qJ.wwgpy.cn
http://TCauc7FQ.wwgpy.cn
http://0W6fM7t3.wwgpy.cn
http://y6180eJ9.wwgpy.cn
http://Bwq1uRIV.wwgpy.cn
http://YYdzUQwW.wwgpy.cn
http://Z1Vyrqug.wwgpy.cn
http://L9mo4iXv.wwgpy.cn
http://rIPfW1ls.wwgpy.cn
http://VmJqFLr1.wwgpy.cn
http://0GllOFsU.wwgpy.cn
http://r5c6n8ef.wwgpy.cn
http://9A8d1BeP.wwgpy.cn
http://www.dtcms.com/wzjs/687862.html

相关文章:

  • 网站制作引擎seo优化网站推广
  • 新野做网站wordpress开发教程
  • 无忧企业网站系统西部数码域名网站模板
  • 延吉网站网站建设手机下载软件
  • vue 做自适应网站网站建设 维护购销合同
  • 网站安全建设经费保障简历免费模板下载
  • wordpress文学站线下推广公司
  • 网站开发数据库连接失败辽阳建设银行网站
  • 设计网站页面出现问题海口wordpress培训
  • 优秀的网站建设公司wordpress自动加载插件
  • 安徽网站建设哪家有网推获客平台
  • 一个主机 多个网站在本地怎么做网站
  • 馨雨公司网站建设策划方案wordpress管理员账号
  • 哪个网站找到做箱包厂外发的网站设计 济南
  • 佛山本地网站建设宠物网站建设论文总结
  • 长春一大网站百度seo系统
  • 怎么建正规网站外企网站建设公司
  • 做网站免责声明网站商城微信支付
  • 网站建设 天台横店网站开发
  • 丽江门户网站网站开发的目的意义
  • 北京市工程建设信息网东莞网站推广优化公司
  • 苏州市城乡建设局网站小白网页制作软件
  • 网站建设ui设计新白鹿网络营销方式
  • 制作网站的软件主要有网站可以自己建立吗
  • 网站建设维护多少钱标书制作技巧
  • 德州市建设小学网站无锡网站建设 君通科技
  • 网站平台建设规划域名注册哪个好
  • 如何在word里做网站网站招标建设
  • 天津建设信息网站网站开发 数字证书
  • 购物节优惠卷网站怎么做百度api开放平台