Mysql 数据库与#x27;s字符集,表';s字符集和列';charset?不同的字符集是否会导致性能问题?
我正在使用ASP.net开发一个网站,我的数据库是MYSQL。在那里,用户可以提交文章。这个网站是国际性的,所以我不想把语言限制为英语 所以我决定做几件事。如果我做了错误的选择,请指导我 1) 我选择utf8mb4作为数据库字符集。因为它是UTF8的改进版本,用于存储更多字符。我的选择正确吗?我的意思是,我只有几个需要使用utf8mb4的表。那么我应该使用Latin1作为数据库字符集吗 2) 我不知道上面的字符集使用哪个排序规则。我决定使用utf8mb4瑞典语。或者我应该使用通用Ci或任何其他 3) 在我的表中,大多数表不需要utf8mb4字符集。拉丁语1瑞典人将完成这项工作。所以,即使DB位于另一个字符集和排序规则中,我也可以在特定的字符集和排序规则下维护选定的表吗 4) 我是否可以将utf8mb4字符集用于表中具有拉丁文1瑞典文作为字符集的特定列 如果可以,那么数据库字符集、表字符集和列字符集之间的关系是什么 不同的字符集是否会导致性能问题Mysql 数据库与#x27;s字符集,表';s字符集和列';charset?不同的字符集是否会导致性能问题?,mysql,asp.net,character-encoding,collation,utf8mb4,Mysql,Asp.net,Character Encoding,Collation,Utf8mb4,我正在使用ASP.net开发一个网站,我的数据库是MYSQL。在那里,用户可以提交文章。这个网站是国际性的,所以我不想把语言限制为英语 所以我决定做几件事。如果我做了错误的选择,请指导我 1) 我选择utf8mb4作为数据库字符集。因为它是UTF8的改进版本,用于存储更多字符。我的选择正确吗?我的意思是,我只有几个需要使用utf8mb4的表。那么我应该使用Latin1作为数据库字符集吗 2) 我不知道上面的字符集使用哪个排序规则。我决定使用utf8mb4瑞典语。或者我应该使用通用Ci或任何其他
非常感谢。数据库字符集由表继承,除非您重写它。(我建议在表格级别明确。) 表字符集由表中的列继承。因为通常只有一个字符集,所以这种继承是可以的。另外,当您执行
showcreatetable
每个列的设置时,就非常清楚了,而不必查看数据库或系统
走向国际——使用utf8或utf8mb4。我同意utf8mb4是一个更好的选择,尤其是对于中文和一些表情符号
character\u set%
——只有客户端、连接和结果才重要。这三个是由集合名称utf8mb4
设置的。别管其他人
utf8mb4的默认排序规则是utf8mb4_general_ci,如果您有多种语言,这可能是一个不错的选择。另一种选择是utf8mb4_unicode_ci。我在第二章中更多地讨论了“组合变音符号”。本节给出了这两种排序规则不同之处的示例:
另请参见“最佳实践”部分
拉丁文1小于西欧文本的utf8。MySQL将在需要时进行适当的转换,因此这不是问题。但是,我不希望通过混合字符集来混淆程序员。请记住,将现有表列从latin1转换为utf8需要一些努力、可能的停机时间和可能的风险
4) 我是否可以将utf8mb4字符集用于表中具有拉丁文1瑞典文作为字符集的特定列
对。每列(但不是每行)可以有不同的字符集和/或排序规则
不同字符集的存在本身并不是一种性能。当两列具有不同的字符集和/或排序规则时,中的col1=col2
(以及其他情况)可能会对您产生影响。如果MySQL发现了一个不容易处理的差异,它将放弃一个本来非常好的索引