项目中数据库查询效率慢的时候,寻找问题方案

项目中数据库查询效率慢的时候,寻找问题方案

发生问题

	在开发时发生过数据库在本地查询时,效率和速度都很快(本地环境和生产环境数据量一致),但是在生产环境中效率就会慢很多。
	也有生产和本地都很慢的情况

寻找问题

	当发生这个问题时候,博主先按顺序寻找问题。使用排除法,一点一点排除。
	1、第一件事情寻找sql慢的原因,是否是因为没有建立索引或者是修改索引。导致索引失效。
	2、使用explain进行分析sql 查询当前sql索引使用程度,是否需要建立索引。
	3、检查sql是否多表联查时,是否是小表驱动大表。
	4、慎用group by +  order by 操作,可能会使索引失效(深坑)。
	5、检查服务器环境连接地址是否是内网IP,不是公网IP(阿里云MYSQL,比较坑)。
	6、检查mysql内存分配。
	7、检查mysql使用搜索引擎,mysql索引建立是使用的什么索引。

解决问题

	与上面一一对应:
	1、在建表时,分析业务数据量是否很大,需要在where 字段上建立索引。
	2、使用explain分析时,查看当前索引是否被使用到type (system > const > eq_ref > ref > fulltext > ref_or_null > index_merge > unique_subquery > index_subquery > range > index > ALL)
	3、检查sql
	4、之前因为group by + order by 导致索引失效,使用FORCE INDEX(XXX) 强制索引,进行查询
	5、检查yml文件,查看mysql连接是否是公网地址
	6、使用show variables like 'innodb_buffer_pool%';进行查询内存,如果不够使用,进行修改
	7、使用不当进行修改。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值