从我的阅读中看出,目前的智慧似乎是,对于mysql数据库的默认字符集,大体上utf8是一个好的/失败的/最佳选择。我想我可以接受这一点并忍受其后果。但是,我想知道......
我放入数据库的所有内容都先加密,然后进行base64编码。这意味着我的数据库表中可能出现的几乎所有字符都是az,AZ,0-9,=等。我应该提到我的许多表中都有一列包含一些unncyrpted / unbase64编码数据包含字符az,0-9和AZ。我需要对此列中的行进行区分大小写的搜索。
在这种情况下...... - 如果我使用US ASCII + ascii_bin而不是utf8,我会不会看到一些好处?
我非常感谢有关这个问题的任何建议。
答案 0 :(得分:3)
为了减小数据库的大小,您应该使用满足您需求的最小字符集。 utf *家庭非常大。
这实际上取决于存储的数据。如果您使用多语言字符(即德语,匈牙利语,阿拉伯语,西里尔语)或特殊字符(不包括在ascii中(如integral或n-arry summation符号),则utf8是一个不错的选择。
但是,如果只存储普通英语(在非base64列中),请使用ASCII。
否则,请考虑使用text(非base64)值创建单独的表,并在搜索时按索引值连接它们。