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

律所网站建设建议网上商城网站系统

律所网站建设建议,网上商城网站系统,柯桥建设集团网站,php网站建设与维护一、背景知识 字符集COLLATE 1、字符集是一套符号和编码#xff0c;COLLATE是在字符集内用于比较字符的一套规则。通常的字符集都是utf8mb4#xff08;8.0默认#xff09;。 2、在mysql中#xff0c;字符类型的列#xff0c;比如#xff1a;char、text、varchar等类型…一、背景知识 字符集COLLATE 1、字符集是一套符号和编码COLLATE是在字符集内用于比较字符的一套规则。通常的字符集都是utf8mb48.0默认。 2、在mysql中字符类型的列比如char、text、varchar等类型的列都需要有collate和mysql进行交互告诉mysql这些列该如何进行排序。 因此COLLATE和orderby、distinct、group by、having语句息息相关同时也会影响where条件中大于小于等于的查询。 3、不同的COLLATE下会影响mysql的索引使用 4、utf8mb4编码的默认值为utf8mb4_general_ci utf8mb4_bin将字符串每个字符用二进制数据编译存储其数据比较方法其实就是直接将所有字符看作二进制串然后从最高位往最低位比对。所以很显然它是区分大小写的。 utf8mb4_general_ci没有实现Unicode排序规则在遇到某些特殊语言或者字符集排序结果可能不一致。但是在绝大多数情况下这些特殊字符的顺序并不需要那么精确。 utf8_general_ci校对规则进行的比较速度很快但是与使用 utf8mb4_unicode_ci的校对规则相比比较正确性较差 utf8mb4_unicode_ci是基于标准的Unicode来排序和比较能够在各种语言之间精确排序Unicode排序规则为了能够处理特殊字符的情况实现了略微复杂的排序算法。 5、总结general_ci 更快unicode_ci 更准确、utf8mb4_bin对字符大小写敏感。补充现在的CPU来说它远远不足以成为考虑性能的因素索引涉及、SQL设计才是。使用者更应该关心字符集与排序规则在db里需要统一。 二、分析 默认字符比较规则utf8mb4_general_ci是不区分大小写的utf8mb4_unicode_ci也不区分 2.1 ci即case insensitive不区分大小写即大小写不敏感。A和a在排序和比较的时候是一视同仁。 selection * from test where cloumna同样可以把cloumn为A的值选出来。对于mysql来说a和‘A’没有区别2.2 大小写敏感case sensitivity是指使用大写字母、小写字母造成不同效果的情况。 eg使用单据号作为唯一键 数据001A落表的时候会变成001a因为mysql默认是不区分大小写的。 这样当表里面有001a的时候 其是唯一键再存001A就会导致唯一键冲突。 2.3 情景复现 表里面已经有name aaaa的数据 name字段是唯一键 name为字符串且为ci格式 再次插入数据name AAAA’时就会报错。唯一键冲突 复现 2.4 解决utf8mb4_unicode_ci或utf8mb4_general_ci utf8mb4_bin 方式一改变表的属性区分表中字符串的列使所有字符列都区分大小写 ALTER TABLE my_table CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;CREATE TABLE user (order_no varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 单号,UNIQ_KEY order_no (order_no) COMMENT 唯一索引 ) ENGINEInnoDB AUTO_INCREMENT1 DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_unicode_ci COMMENT这里的建表语句使用的是COLLATEutf8mb4_unicode_ci这种方式创建的表中的字符串字段都是不区分大小写的。默认方式创建的单据号字段order_no是不区分大小写的即大小写最终都是小写这样就会造成唯一键冲突。 方式二也可以针对某一字符的字段属性utf8mb4_bin alter table zebra_mybatis_test modify column name varchar(128) COLLATE utf8mb4_bin NOT NULL DEFAULT COMMENT 姓名;2.5、sop 默认表的创建还是使用ENGINEInnoDB AUTO_INCREMENT1265 DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_unicode_ci COMMENT‘xxxx’ 但是当业务需要某个字段区分大小写。即大小写不同有不同的含义时则需要将字段设置为大小写敏感即utf8mb4_bin 补充 更多的时候还是要考虑是否要区分大小写比如用于存用户登陆的账号、密码。密码就必须大小写敏感。需要根据具体的业务确定
http://www.pierceye.com/news/34200/

相关文章:

  • 贵阳经开区建设管理局网站目录搜索引擎有哪些
  • 五大门户网站分别是长春网站制作一般需要多少钱
  • 网站开发需要的软件有哪些推广普通话手抄报内容资料
  • 濮阳网站建设哪里便宜织梦做企业网站教程
  • 网站建设阶段一家公司做网站需要什么资料
  • 番禺网站建设企业国外网站怎么注册
  • 环保网站建设费用网站建设质量体系审核指导
  • 个人电脑可以做网站服务器吗2024年最新一轮阳性症状
  • 茂名住房和城乡建设部网站临淄信息港发布信息
  • 手机网站地址杭州网站开发工资
  • qq怎么做自己的网站丰台体育馆网站建设
  • 做网站被骗预付款怎么办宁波网站建设哪里有
  • 门户网站开发投标文件.doc如何建设股权众筹网站
  • 免费企业一键建站网站wordpress网页防爬
  • 做模板下载网站挣钱吗河南周口东宇网站建设
  • 建立子目录网站网站安全建设方案需求分析
  • 做英语趣味教具的网站优化wordpress调用文章函数
  • 网站设计网站开发网站布局模版
  • 登封做网站推广网站建设前准备工作
  • 太仓做企业网站wordpress主题收费破解
  • 网站怎么登陆后台深圳宝安区怎么样
  • 企业互联网整合营销张家界有实力seo优化费用
  • 网站营销外包公司网站开发成本包括
  • 毕业设计做网站还是系统好wordpress 国产主题
  • 成都市自住房建设网站重庆电子商务公司排名
  • 海口网站建设公司天津站内关键词优化
  • 品牌网站建设磐石网络优等福州网站设计培训
  • 如何做网站管理维护东莞网站建设 模具
  • 营销型网站建设网站建设资讯wordpress文章编辑框
  • wap免费网站拼团网站建设