今天遇到一个问题,mysql库表中数据存储量比较大,导致对于时间的查询比较慢。数据量100W左右,时间是字符串格式,形式是 "yyyy-MM-dd HH:mm:ss"。需要对库表结构进行改造,改造内容就是在原有库表基础上新增一个时间相关的字段,而内容由原字段提供。
在网上也查询了一些资料,例如timestamp类型和datetime类型,哪种类型查询起来效率高。最后决定使用timestamp类型。
下面是本文的重点,mysql数据库新增字段,内容来源于原字段,只是对原字段的形式进行改变:
update test_copy set create_long = (select STR_TO_DATE(created_time,'%Y-%m-%d %H:%i:%s'))test_copy是我测试的表名;create_long是新增的字段,类型是timestamp;create_time是库表中原有的字段,类型是varchar。
执行此语句的时候,可能需要一段时间,根据库表中的数据量大小决定。