一、选择合适的数据类型

 
(2)对于innodb表,尽量使用varchar。

 
可以使用MD5(),SHA1(),CRC32()等来生成散列值。比如

    create table t(id varchar(100), context blob, hash_value varchar(40));
    insert into t values(1, repeate('beijing',2), md5(context)),
    (2, repeate('beijing',200), md5(context)),
    (100, repeate('helloworld',20), md5(context));
    select * from t where hash_value=md5(repeat('beijing', 2));

 

select * from t where context='hello%'。

 
(4)要注意浮点数中一些特殊值的处理

 
(3)如果记录的日期需要让不同时区的用户使用,最好使用TIMESTAMP,因为TIMESTAMP和实际时区匹配

二、 mysql中的字符集

常用字符集比较:

字符集 是否定长 编码方式 其他说明
ASCII 单字节7位编码 最早的奠基性字符
IOS-8859-1/latin1 单字节8位编码 西欧字符集
GB2312 双字节编码 早期标准,不推荐使用
GBK 双字节编码 不少系统支持
GB18030 2字节或4字节编码 开始有一些支持,但数据库不常见
UTF-32 四字节编码 UCS-4原始编码,现在很少使用
UCS-2 2字节编码  
UTF-16 2字节或4字节编码 java和windows xp/nt等内部使用
UTF-8 1~4字节编码 互联网和unix/linux广泛支持的unicode字符集

    其中,GBK每个汉字占用2个字节,而UTF-8每个汉字占用3个字节。

相关文章:

  • 2021-06-02
  • 2022-12-23
  • 2021-10-27
  • 2021-11-26
  • 2022-02-22
  • 2021-07-04
  • 2022-12-23
猜你喜欢
  • 2021-05-19
  • 2021-12-23
  • 2021-09-10
  • 2022-12-23
相关资源
相似解决方案