遇到个问题,一个py脚本的运行时间越来越长。。
起初以为是使用“insert ignore …”来忽略重复的报错,使得mysql一直弹出警告导致,随着数据量增大,忽略的量也在增加,就导致这一部分时间上会比较久?似乎有这个可能,但不至于会比原来慢个十几倍吧???
观察数据
观察了一下最近的数据库数据,根据数据的更新时间,发现好像不是插入时候的问题,而在于插入后执行的查询上,原本的字段没有建立任何索引,测试了一下使用三个条件 where xx and xx and xx来进行查询,结果发现居然要一百多秒。。。
于是尝试给这三个字段建立索引来查询,同样的查询条件:
建立索引之前:160s左右
建立索引之后:0.004s左右
简直差了四万倍左右!!
才知道索引真香
这种需要查询多个条件的,就可以为这些要查询字段建立索引进行查询。