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

天津做无痛人流费用五洲网站网站开发项目合同书

天津做无痛人流费用五洲网站,网站开发项目合同书,像聚美网站建设费用,创意 国外 网站在创建要给表的时候遇到一个有意思的问题#xff0c;提示Specified key was too long; max key length is 767 bytes#xff0c;从描述上来看#xff0c;是Key太长#xff0c;超过了指定的 767字节限制。通常出现在尝试创建一个过长的唯一键#xff08;UNIQUE KEY#xf…在创建要给表的时候遇到一个有意思的问题提示Specified key was too long; max key length is 767 bytes从描述上来看是Key太长超过了指定的 767字节限制。通常出现在尝试创建一个过长的唯一键UNIQUE KEY或主键PRIMARY KEY时。MySQL对于InnoDB存储引擎有一个索引键长度的限制这个限制基于字符集的不同而不同。 下面是产生问题的表结构 CREATE TABLE test_table (id int(11) unsigned NOT NULL AUTO_INCREMENT,name varchar(1000) NOT NULL DEFAULT ,link varchar(1000) NOT NULL DEFAULT ,PRIMARY KEY (id),KEY name (name) ) ENGINEInnoDB AUTO_INCREMENT1 DEFAULT CHARSETutf8mb4;在使用utf8字符集时每个字符可能占用3个字节那么对于innodb表索引键的最大长度大约为1000个字符左右因为3072 / 3 ≈ 1024。若字符集是utf8mb4每个字符可能占用4个字节所以最大长度会进一步减少到768个字符左右3072 / 4 768 uf8mb4字符集: 要在 Mysql 中保存 4 字节长度的 UTF-8 字符需要使用 utf8mb4 字符集mb4就是most bytes 4的意思专门用来兼容四字节的unicode但只有 5.5.3 版本以后的才支持。 为了获取更好的兼容性应该总是使用 utf8mb4 而非 utf8. 对于 CHAR 类型数据utf8mb4 会多消耗一些空间根据 Mysql 官方建议使用 VARCHAR 替代 CHAR。其实utf8mb4是utf8的超集理论上原来使用utf8然后将字符集修改为utf8mb4也会不会对已有的utf8编码读取产生任何问题。当然为了节省空间一般情况下使用utf8也就够了。 对于name我们设置长度为1000可变字符因为采用utf8mb4编码, 所以它的大小就变成了 1000 * 4 767 所以再不修改其他配置的前提下varchar的长度大小应该是 767 / 4 191 有兴趣的同学可以测试下分别指定name大小为191, 192时是不是前面的可以创建表成功后面的创建表失败并提示错误Specified key was too long; max key length is 767 bytes 解决办法 使用innodb引擎 启用innodb_large_prefix选项修改约束扩展至3072字节 重新创建数据库 my.cnf配置 set global innodb_large_prefixon; set global innodb_file_per_tableon; set global innodb_file_formatBARRACUDA; set global innodb_file_format_maxBARRACUDA;上面这个3072字节的得出原因如下 我们知道InnoDB一个page的默认大小是16k。由于是Btree组织要求叶子节点上一个page至少要包含两条记录否则就退化链表了。 所以一个记录最多不能超过8k。又由于InnoDB的聚簇索引结构一个二级索引要包含主键索引因此每个单个索引不能超过4k 极端情况pk和某个二级索引都达到这个限制。 由于需要预留和辅助空间扣掉后不能超过3500取个“整数”就是(1024*3)。 在创建表的时候加上 row_formatDYNAMIC CREATE TABLE test_table (id int(11) unsigned NOT NULL AUTO_INCREMENT,name varchar(255) NOT NULL DEFAULT ,link varchar(255) NOT NULL DEFAULT ,PRIMARY KEY (id),KEY name (name) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 row_formatDYNAMIC;这个参数的作用如下 MySQL 索引只支持767个字节utf8mb4 每个字符占用4个字节所以索引最大长度只能为191个字符即varchar(191)若想要使用更大的字段mysql需要设置成支持数据压缩并且修改表属性 row_format {DYNAMIC|COMPRESSED}
http://www.pierceye.com/news/127358/

相关文章:

  • 安阳河南网站建设wordpress 建立导航
  • 电子商务网站建设 考卷wordpress替换头像
  • 石家庄的网站的公司手机wordpress加载图片慢
  • 建企业网站教程wordpress网站被黑
  • 饮料网站建设市场分析什么是seo网站优化
  • 滑动网站国家级示范建设网站
  • 做一门户网站价格个人网站制作模板图片
  • 做网站需要审核资质吗wordpress 防恶意注册
  • 怎么不花钱建网站无人售货机
  • 可以做空股票的网站thinkphp网站开发
  • 给别人做网站怎么赚钱吗专业网络推广软件
  • SOHO英文网站制作晋江网站制作
  • 启东住房和城乡建设局网站邢台网站制作报价多少钱
  • 佛山网站建设seo优化做英文的小说网站有哪些
  • 安顺建设局网站官网哪里有响应式网站企业
  • 唯品会一家做特卖的网站国家商标查询官方网站
  • 网站宝搭建网站环境做电商网站一般需要什么流程图
  • 南通网站建设团队wordpress广告产检
  • 做网站刷赞qq怎么赚钱邢台路桥建设总公司没有网站吗
  • 网站仿站教程常用外贸网站
  • 南昌市有帮做网站的吗纵横天下网站开发
  • pc网站直接转换成移动端的网站黑果云免费虚拟主机
  • 网站建设用什么科目wordpress当前分类链接地址
  • 做一万个网站网站做下载功能
  • 佛山建站模板制作wordpress加上live2d
  • 樟木头网站仿做深圳网站开发公司
  • 孙俪做的网站广告微信如何修改wordpress
  • 有什么手机做网站的免费ppt模板下载花
  • 网站建设团队技术介绍县级网站
  • 深圳营销型网站建设价格网站建设文化如何