加入收藏 | 设为首页 | 会员中心 | 我要投稿 汽车网 (https://www.0577qiche.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

MySQL优化特定类型的查询方法讲解

发布时间:2023-05-09 13:06:33 所属栏目:MySql教程 来源:
导读:如果想要优化使用关联的查询,我们需要特别留意以下几点:

1、确保ON或者USING子句中的列上有索引。在创建索引的时候需要考虑到关联的顺序。当表A和表B用列c关联的时候,如果优化器的关联顺序是B、A,那么就不需要
如果想要优化使用关联的查询,我们需要特别留意以下几点:

1、确保ON或者USING子句中的列上有索引。在创建索引的时候需要考虑到关联的顺序。当表A和表B用列c关联的时候,如果优化器的关联顺序是B、A,那么就不需要在B表的对应列上加索引。除非有其他理由,否则只需要在关联顺序的第二个表的对应列上创建索引,没有用的索引只会带来额外的负担。

2、确保任何GROUP BY 和 ORDER BY 中的表达式只涉及一个表中的列,这样MysqL才有可能使用索引来优化这个过程。

3、当升级MysqL的时候需要注意:关联语法、运算符优先级等其他可能会发生变化的地方。

MySQL优化特定类型的查询方法讲解

在很多场景下,MysqL都使用同样的办法优化这两种查询,事实上MysqL优化器会在内部处理的时候相互转换这两类查询。它们都可以使用相同的索引算法来实现优化,这也是最有效的实施优化搜索引擎的办法。

当无法使用索引的时候,GROUP BY使用两种策略来完成:使用临时表或者文件排序来分组。对于任何查询语句,这两种策略的性能都有可以提升的地方。我们可以通过提示 sql_BIG_RESULT 和 sql_SMALL_RESULT 来让优化器按照你希望的方式运行。

在系统中需要进行分页操作的时候,我们通常会使用LIMIT 加上偏移量的方法实现,同时加上合适的ORDER BY 子句。如果有对应的索引,通常效率会不错,否则,MysqL需要做很复杂的文件序列化处理。

如果所有的页面被访问的频率都相同,那么这样的查询平均需要访问半个表的数据。要优化这种查询,要么是在页面中限制分页的数量,要么是更进一步地优化具有大偏移量的性能。

(编辑:汽车网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章