一个表中的不同排序规则和排序规则问题

时间:2016-12-10 23:48:46

标签: php mysqli

  1. 将一列设置为UTF-8并在latin1_中保留休息是否明智。这会影响查询的性能(可能会调用一些转换)吗?或者我应该将所有设置为UTF-8。 (拉丁文列是由应用程序生成的,都是latin1_所以没有理由将它们放在utf-8中,而且我在VARCHAR中有更多的空间女巫在这种情况下很重要,如果我不这样做,我不想切换到TEXT不得不 )。 Php只在该表上调用INSERT,SELECT和UPDATE。也许把那张桌子分成两张桌子,这引出了我的第二个问题。

  2. 如果php mysqli->连接字符集设置为UTF-8并且是SELECTING,INSERTING和UPDATING一个设置为latin1_的表,我可以这样保留它,还是应该将其更改为utf-8,关于性能(是否有任何转换函数被调用,即使所有latin1_列都是由应用程序生成的,并且在latin1_中,VARCHAR也需要切换到TEXT)

1 个答案:

答案 0 :(得分:1)

如果您使用mysqli::set_charset()将客户端的字符集设置为UTF-8,那么MySQL将期望所有传入的查询都使用该编码。它还将以UTF-8的形式提供所有结果,包括使用 latin1 字符集的列中的值。

转换是自动完成的,至少会产生一些开销。

只要应用程序发送并期望UTF-8无处不在,一切都会好的。如果没有,你将会度过一段美好时光。

混合这样的编码是否聪明?不,我不相信。