昨晚执行了获取数据并存入本地数据库的自动任务,总共获得三千多万条记录。今天早上发现了2处地方不妥。
-
查询速度过慢。根据证券代码执行简单的SELECT 语句就要花费50s左右的时间。
查询资料,通过添加合理添加索引大大提高查询速度。另外还有一个方法,比如建表时合理设置字段,sql语句的优化
,分表分库等。以及存储引擎的选择。MyISAM读取大于存储,InnoDB相反 -
很多数据有重复。
重复如何发生的此处不计,去重语句如下:
DELETE FROM stocksdata_5m WHERE id NOT IN (SELECT id FROM (SELECT min(id) AS id FROM stocksdata_5m GROUP BY stockid, date) a);
# 最后的a不能省略,每个派生表必须有自己的别名。