Hat MySQL gemischtes utf8 utf8mb4 irgendwelche Vorteile gegenüber reinem utf8mb4?
巴扎黑
巴扎黑 2017-06-22 11:54:49
0
1
1006

Es gibt zu viele Tabellen.
Konfiguration, Tag, Router usw. verwenden überhaupt nicht utf8.
Wird diese Mischung aus utf8 und utf8mb4 Auswirkungen auf die Suche haben? Indizierung und Protokolldatensätze?
Ist das schneller als reines utf8mb4? Ist es stabil?
Müssen Sie eine Konfiguration in der MySQL-Konfiguration ändern und utf8mb4 optimieren?

Wenn der PHP-Code DB_CHARSET utf8mb4 festlegt, wirkt sich das auf uft8-Daten aus?

巴扎黑
巴扎黑

Antworte allen(1)
阿神

没有太多优势
因为utf8mb4仅在emoji等特殊字符的时候用到了4个字节存储
其余时候表现和mysql的utf8字符集是一样的, 存储汉字仍然是3个字节

(因为mysql的utf8字符集的单个字符的最大长度方面的实现是错误的, 所以才冒出个utf8mb4字符集出来, 实际上这个utf8mb4就是标准的utf8)

当然, 需要避免使用char, 改用varchar, 因为mysql的char列类型在utf8mb4下, 为了保证所有的数据都存的下, char将会占用字符数*4的字节数 (mysql的char列类型utf8将占用字符数*3的字节数), 以保证空间分配足够. 所以建议用可变长度varchar, 以节省空间. 可变长度消耗的存储空间为: 实际存储需要的字节数+1或2个字节表达的长度.

另外对于纯英文字符的列, 你可以另外考虑varbinary(可变长度binary)和binary列(适用于固定长度的英文字符, 例如密码哈希)类型, 性能比varchar略好, 因为这个存储二进制数据

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage