为什么要在MySQL中为UTF8文本数据设置排序规则?

时间:2015-02-25 12:51:58

标签: mysql

我使用人工生成的文本,我从不同的在线数据集中下载,例如GitHub Torrent,Twitter API,网页抓取的HTML页面,Google BigQuery for GitHub等,这意味着我在数据库中有数以万计的文本

在哪些情况下,我应该为MySQL数据库中的 UTF8字段 UTF8表格设置整理?是否有必要,我不能简单地使用" CHARACTER SET UTF8"

utf8 - 默认排序规则 utf8_unicode_ci utf8_general_ci utf8_general_mysql500_ci 之间有什么区别?

1 个答案:

答案 0 :(得分:3)

每个文本列都有一个排序规则。它可以在表定义中明确设置,也可以只根据表的缺省值,数据库的缺省值或服务器范围的缺省值进行设置。但它有一个整理。

您提到的排序规则都是不区分大小写。也就是说,它们会忽略大写和小写字母之间的区别。如果您需要区分大小写的排序规则,请使用utf8_binary

您可能希望在现代服务器中使用utf8_unicode_ci。阅读此背景资料。 What's the difference between utf8_general_ci and utf8_unicode_ci

utf8_general_mysql500_ci是一种专门用于向后兼容旧版MySQL的排序规则。 http://dev.mysql.com/doc/relnotes/mysql/5.5/en/news-5-5-21.html