mysql表优化,sql优化


SELECT * FROM  dt_maintain_ecpmap  WHERE ecpmap_extend1='3110-640105-201807-0042'
AND fk_ele_id ='100006637'

这样一个简单的查询结果需要8分钟,怎么优化,索引应该加在哪一列,加哪种索引,表中数据近3000万,或者还有什么其他有效的方法

ecpmap_extend1、fk_ele_id加普通索引    这是一方面

避免更新索引数据列 

做个数据库读、写分离,因为你查询 如果有人往库里写那么也会影响效率的 

先说下你这个查询吧,由于数据较多,你这两个字段ecpmap_extend1、fk_ele_id 哪怕都加索引也不一定多快,因为索引的话一般选择一个,如果返回的数据量比较大,数据的IO都很耗时。当然,如果字段是唯一索引,那就很快了。

个人建议:这种查询最好加上联合索引,直接定位两个查询条件的对应数据,速度绝对比单个索引快一些的。

还有就是3000万数据有点多了,可以考虑分库分表,根据唯一值定位表,然后再查询,这样会快很多的。

如有帮助,请采纳~