`

MySQLSQL优化最佳实践和建议

 
阅读更多
总结一下项目中经常使用的MySQL SQL优化最佳实践

1.IN查询包含的值不应过多
建议最多不超过5个,虽然MySQL对于IN做了相应的优化——IN中的常量全部存储在一个数组里面,并对这个数组进行排好序。但是如果数值较多,产生的消耗也是比较大的。
对于in(1,2,3) 这样连续的数值,可以使用between或者使用连接来替换。

2. SELECT语句务必指明字段名称
3. 当只需要一条数据的时候,使用limit 1
这样可以使得EXPLAIN中的type列达到const类型
4. 如果排序字段没有用到索引,就尽量少排序
5. 如果限制条件中其他字段没有索引,尽量少用or
很多时候使用 union all 或者是union(必要的时候)的方式来代替“or”会得到更好的效果
6. 尽量用union all代替union
union和union all的差异主要是前者需要将结果集合并后再进行唯一性过滤操作,这就会涉及到排序,增加大量的CPU运算,加大资源消耗及延迟。 union all的前提条件是两个结果集没有重复数据。
7. 区分in和exists, not in和not exists
区分in和exists主要是造成了驱动顺序的改变,如果是exists,那么以外层表为驱动表,先被访问,如果是IN,那么先执行子查询。所以IN适合于外表大而内表小的情况EXISTS适合于外表小而内表大的情况。关于not in和not exists,推荐使用not exists,不仅仅是效率问题,not in可能存在逻辑问题。
分享到:
评论

相关推荐

    数据分析师面试题SQL业务机器学习MySQLSQL优化技能和指导视频

    数据分析师面试题SQL业务机器学习MySQLSQL优化技能和指导视频

    mysqlsql优化进阶教程-含视频及逻辑图

    此外,定期对索引进行优化和维护也是必要的。可以通过分析查询日志和执行计划来评估索引的使用情况,及时发现和处理潜在的性能问题。同时,定期重建或者重新组织索引,可以进一步提高索引的效率和性能。

    MySQL性能优化 SQL优化方法技巧

    MySQL作为一款广泛使用的开源关系型数据库管理系统,其性能优化对于确保应用系统的稳定性和高效运行至关重要。通过对MySQL的优化,不仅能提升系统的响应速度,还能有效减少硬件资源的投入成本。本文将详细介绍MySQL...

    mysql SQL优化

    MYSQL与SQL优化,自己编写MYSQL与SQL优化.ppt MYSQL与SQL优化.ppt

    MySQLSQL语句优化技巧

    2、对查询进行优化,应尽量避免全表扫描,首先应考虑在where及orderby涉及的列上建立索引。 3、应尽量避免在where子句中对字段进行null值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:...

    MySQLSQL通用语句

    MySQLSQL通用语句

    MySql Sql 优化技巧分享

    MySQL SQL 优化技巧是数据库管理员和开发者提升数据库性能的关键技能。在本文中,我们将深入探讨一个具体的案例,涉及一个带有INNER JOIN操作的SQL查询优化。该查询在执行时并未达到预期的速度,但在经过一系列分析...

    一个MySql SQL优化技巧分享

    有天发现一个带inner join的sql 执行速度虽然不是很慢(0.1-0.2),但是没有达到理想速度。两个表关联,且关联的字段都是主键,查询的字段是索引。  sql如下: SELECT p_item_token.*, p_item.product_type ...

    MYSQLsql语句练习和疑问解析.md

    sql语句练习和疑问解析

    MySQLSQL高级特性字段约束-索引-视图-外键学习实践.rar

    掌握这些高级特性对于优化MySQL数据库的性能、提高数据管理效率以及确保数据的准确性和一致性具有重要意义。在实际应用中,应根据具体业务需求灵活运用这些工具,以达到最佳的数据库设计和管理效果。

    php mysqlsql 查询组件

    综上所述,PHP与MySQL的结合使用是Web开发中的常见实践,而“查询组件”则可能是为了提高数据库操作效率和简化代码的一个工具。同时,SQLite的引入为开发提供了更多的灵活性,特别是在轻量级应用或者需要离线存储的...

    mysqlSQL语法.pdf

    MySQL SQL语法是数据库管理系统中用于操作数据的核心语言,它提供了创建、更新、查询和管理数据库的命令。在本文中,我们将深入...通过实践和不断学习,你可以更加熟练地运用这些工具,解决各种复杂的数据处理问题。

    java课设基于ssm人力人事管理系统源码+mysqlsql数据库脚本文件

    java课设基于ssm人力人事管理系统源码+mysqlsql数据库脚本文件,该有的功能都有,适合java毕设课设,功能模块: 用户管理:包括登录、注册、用户信息修改等功能。 员工管理:实现员工的增加、删除、修改和查询等...

    浅谈MySQL中优化sql语句查询常用的30种方法

    23. **定期分析和优化表**:使用`ANALYZE TABLE`和`OPTIMIZE TABLE`命令定期更新统计信息和重构表。 24. **批量插入数据**:大量数据插入时,使用批量插入(如`INSERT INTO...VALUES`多行语法)比单条插入更快。 ...

    mysqlSQL语法[文].pdf

    MySQL SQL语法是数据库管理和开发中的基础,用于在MySQL数据库中创建、操作和管理数据。以下是一些关于MySQL SQL语法的关键知识点: ...记住,实践是学习SQL的最佳途径,尝试在实际环境中应用这些语句将加深理解。

    MySQLSQL经典50题,R语言_tidyverse_解法_SQL50.zip

    MySQLSQL经典50题,R语言_tidyverse_解法_SQL50

    MySQLSQL入门(一).pdf

    - MySQL 数据库的 SQL 语句不区分大小写,但为了增强代码的可读性,建议将关键字使用大写。 - 在同一个数据库服务器中,不能创建两个名称相同的数据库,否则将会报错。 - 如果尝试删除一个不存在的数据库,系统会...

    mysqlsql语句大全

    资源名称:mysql sql语句大全资源截图: 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。

    oracle Mysql相互转化的工具

    8. 兼容性和性能优化:好的工具应该考虑不同版本的Oracle和MySQL的兼容性,同时优化迁移速度,减少对生产环境的影响。 9. 后续集成:迁移完成后,工具应提供报告,列出迁移详情,方便进行后续的系统集成和测试。 ...

Global site tag (gtag.js) - Google Analytics