优化原理
分析型数据库MySQL版处理数值类型的性能远好于处理字符串类型。原因在于:
- 数值类型定长,占用内存少,存储空间小。
- 数值类型计算更快,尤其是join时。
- 从内部索引机制上,字符串类型适合等值查询和范围查询情况,而时间,数值类型性能更高,建议用户尽可能使用数值类型,减少使用字符串类型。
方法
常见将字符串转换为数值类型方法:
- 包含字符前缀或后缀,例如E12345,E12346等。可以直接去掉前缀或者将前缀映射为数字。
- 该列只有少数几个值,例如国家名。可以对每个国家编码,每个国家对应一个唯一数字。
- 时间/日期类型数据,避免使用varchar字符类型存储,尽量使用date,timestamp或者int类型存储时间类型。
- 对于地理经度维度的使用,需要通过地理函数查询情况,数据类型采用double数据类型。