0

我正在尝试提高 MySQL 的性能。我在使用 Latin1 字符集时学到的一件事比使用 UTF8 更快,因为 latin1 使用的字节更少。但我想知道如果我更改排序规则,数据会发生什么?在我今天的应用程序中,大部分内容都是美式英语,但我不能保证也不会有任何其他语言商店。它有人存储英语以外的数据我不太关心这些数据。

我的问题:1)如果我将数据库中的排序规则更改为 latin1,如果数据不是用美式英语编写的,数据会怎样?2) 哪个 lation1_?我应该使用 latin1_bin、latin1_general_ci 还是 latin1_general_cs?如果可能的话有什么区别?3)在更改数据库的排序规则时,我是否还需要单独更改每个表的排序规则?

谢谢

4

1 回答 1

0

如果 UTF 8 有奇怪的字符,它只会使用额外的字节。所以真的,你不应该改变你的排序规则。它没有帮助。UTF 16 被开发用于保存所有语言的所有字符,是的,它使用 16 位,所以如果你使用 utf16,如果你主要使用标准拉丁字符,我建议使用 utf8。UTF 8 是妥协。它有一个特殊字符,意思是“更多字节来了”,如果它看到它,它将下一个组合在一起。但是,如果您只有拉丁字符,则字节数将与拉丁排序规则完全相同。

要具体回答,您可以为新表设置默认排序规则,但是是的,您必须为每个现有表执行此操作。您可以使用列出表的 sql 语句来执行此操作,然后在每个表上运行 sql 语句来更改它。(更改1并注意sql语句)。但同样,不要这样做。utf8 是标准是有原因的。您的性能问题在其他地方。

于 2013-10-16T16:47:12.377 回答