mysql “!=” 性能问题

昨天**高等教育出版社 说他们服务器 cpu很容易利用到100% 访问速度也很慢 查看了下项目代码 汗

原因找到了Products表  以前在本地调试时 数据库记录也就100条左右 而如今**高等教育出版社Pro有10万条记录 关键部位是product的show页面 功能1,浏览了该商品的会员还浏览了 2,购买了该商品的会员还购买了 这两个功能数据是通过find_by_sql得到的 而里面要命的一句就是 product_id != self.id 这是导致查询变慢的主要原因,所以以后用!=时请注意

 

差看详细可到 http://www.aiice.com/256.html  欢迎光临 呵

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
索引失效是指在 MySQL 数据库中,索引无法有效地提高查询性能或者无法被查询优化器正确地使用。这可能会导致查询速度变慢,影响数据库的性能。 索引失效的原因有很多,下面列举一些常见的情况: 1. 数据分布不均匀:如果索引列上的值分布不均匀,可能会导致一些索引区间过大,而另一些区间过小,从而影响索引的效果。 2. 不合适的索引选择:创建了过多或者过少的索引,或者选择了错误的索引类型,都可能导致索引失效。 3. 索引列上使用了函数或者表达式:当在索引列上使用函数或者表达式时,MySQL 无法使用该索引进行查询优化,从而导致索引失效。 4. 数据类型不匹配:如果在查询使用了与索引列上的数据类型不匹配的值,MySQL 也无法使用该索引进行查询优化。 5. 数据量过大:当数据量增长到一定程度时,原本有效的索引可能会变得无效,因为 MySQL查询过程中需要扫描更多的数据块。 解决索引失效问题可以通过以下方式来进行: 1. 优化查询语句:根据实际需求,优化查询语句的写法,避免不必要的表扫描或者数据类型转换。 2. 重新设计索引:根据查询需求和数据分布情况,重新设计合适的索引,确保索引的选择和创建是符合查询优化的要求。 3. 更新统计信息:MySQL 使用统计信息来评估查询计划,如果统计信息不准确,可能导致索引失效。可以使用 ANALYZE TABLE 或者 OPTIMIZE TABLE 命令来更新统计信息。 4. 限制查询结果集大小:如果查询结果集非常大,可以考虑限制结果集的大小,以减少查询的开销。 5. 使用索引提示:在查询语句中使用索引提示,强制 MySQL 使用指定的索引。 希望以上信息对你有所帮助!如有需要,请继续提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值