ascii字符组成的字段排序规则我打算用ascii_bin有问题吗

K-dash 2017-07-23 08:22:05
主要是为了减小索引的key_len
不知道大家在处理字符字段的索引时如何考量这个问题的呢(如账号、邮箱、订单号这些)
发现很多程序员没注意到这个问题,都会默认全部选择utf8

我使用ascii_bin后确实看到key_len变小了,或者其它ascii规则也行,只要一个字符占一个字节就好,怎么排序好像暂时没有明显影响什么
...全文
243 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjcxc 2017-07-25
  • 打赏
  • 举报
回复
混用的风险就是字符集转换,这个是头疼的事,一不小心会影响到性能(比如转换发生在表上而不是变量/常量)
trainee 2017-07-25
  • 打赏
  • 举报
回复
两个不同字符集进行比较或concat等操作, 大部分它会自动隐式转换,某些版本或某些场合它会提示错误,需手工进行convert(... using xxx)成相同的字符集才行. 这和mysql版本有关系, 反正要多测试.
K-dash 2017-07-24
  • 打赏
  • 举报
回复
引用 1 楼 trainee 的回复:
选择默认的ascii_general_ci排序规则就好,不要特意去选择binary, 除非你要大小写敏感比较. 另外: 当一个表两个字符集以上,写SQL的时候,在某种情况,需要写显示转换字符集语句. convert(... using xxx) 你多测试一下以前写的SQL语句.
噢谢谢提醒,我也不用大小写敏感的 转换方面请问能给出具体场景例子吗? 会不会是两种不同字符集都在同一维度内进行比较计算时要这样呢
trainee 2017-07-24
  • 打赏
  • 举报
回复
选择默认的ascii_general_ci排序规则就好,不要特意去选择binary, 除非你要大小写敏感比较. 另外: 当一个表两个字符集以上,写SQL的时候,在某种情况,需要写显示转换字符集语句. convert(... using xxx) 你多测试一下以前写的SQL语句.

56,678

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧