• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > MySQL优化包括的三个方面

MySQL优化包括的三个方面

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-05

匿名通过本文主要向大家介绍了MySQL,优化等相关知识,希望本文的分享对您有所帮助
数据库已成为互联网应用必不可少的底层依赖,其中MySQL作为开源数据库得到了更加广泛的应用。最近一直专注于项目工程的开发,对开发过程中使用到的一些关于数据库的优化原则进行了总结,希望能够帮助更多的应用开发人员更好的使用MySQL数据库。

MySQL的优化主要包括三个方面,首先是SQL语句的优化,其次是表结构的优化,这里主要指索引的优化,最后是服务器配置的优化。

1. SQL语句的优化

1) 查询语句应该尽量避免全表扫描,首先应该考虑在Where子句以及OrderBy子句上建立索引,但是每一条SQL语句最多只会走一条索引,而建立过多的索引会带来插入和更新时的开销,同时对于区分度不大的字段,应该尽量避免建立索引,可以在查询语句前使用explain关键字,查看SQL语句的执行计划,判断该查询语句是否使用了索引;

2)应尽量使用EXIST和NOT EXIST代替 IN和NOT IN,因为后者很有可能导致全表扫描放弃使用索引;

3)应尽量避免在Where子句中对字段进行NULL判断,因为NULL判断会导致全表扫描;

4)应尽量避免在Where子句中使用or作为连接条件,因为同样会导致全表扫描;

5)应尽量避免在Where子句中使用!=或者<>操作符,同样会导致全表扫描;

6)使用like “%abc%” 或者like “%abc” 同样也会导致全表扫描,而like “abc%”会使用索引。

7)在使用Union操作符时,应该考虑是否可以使用Union ALL来代替,因为Union操作符在进行结果合并时,会对产生的结果进行排序运算,删除重复记录,对于没有该需求的应用应使用Union ALL,后者仅仅只是将结果合并返回,能大幅度提高性能;

8)应尽量避免在Where子句中使用表达式操作符,因为会导致全表扫描;

9)应尽量避免在Where子句中对字段使用函数,因为同样会导致全表扫描

10)Select语句中尽量 避免使用“*”,因为在SQL语句在解析的过程中,会将“*”转换成所有列的列名,而这个工作是通过查询数据字典完成的,有一定的开销;

11)Where子句中,表连接条件应该写在其他条件之前,因为Where子句的解析是从后向前的,所以尽量把能够过滤到多数记录的限制条件放在Where子句的末尾;

12)若数据库表上存在诸如index(a,b,c)之类的联合索引,则Where子句中条件字段的出现顺序应该与索引字段的出现顺序一致,否则将无法使用该联合索引;

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 分享下mysql各个主要版本之间的差异
  • MySQL essential版本和普通版本有什么区别?
  • redhat 5.4下安装MYSQL全过程
  • 如何用SQL命令查看Mysql数据库大小
  • 解析mysql中如何获得数据库的大小
  • 解析mysql修改为utf8后仍然有乱码的问题
  • 5个常用的MySQL数据库管理工具详细介绍
  • 解析在MySQL里创建外键时ERROR 1005的解决办法
  • 解析远程连接管理其他机器上的MYSQL数据库
  • mysql 精简过程(删除一些文件)

相关文章

  • 2018-12-05MySQL中把varchar类型转为date类型方法详解_MySQL
  • 2017-05-11解决hibernate+mysql写入数据库乱码
  • 2018-12-05sqlserver索引的原理及索引建立的注意事项小结
  • 2018-12-05介绍一个简单的数据库Database 教程(四)
  • 2018-12-05Access使用查询--1.1. 用选择查询建立计算字段
  • 2018-12-05MySQL 5.5 DBA工具 多进程dump 多进程load 多进程备份还原 Pytho
  • 2018-12-05sql数据表的可视化增删改教程(phpMyAdmin使用教程)
  • 2018-12-05详解MySQL JOIN原理介绍
  • 2018-12-05c3p0引起的死锁如何解决
  • 2018-12-05SQLSERVER 中datetime 和 smalldatetime类型分析说明

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • CentOS mysql安装系统方法
    • Oracle 和 mysql的9点区别
    • MySQL里Create Index 能否创建主键 Primary Key
    • SqlServer中的日期与时间函数
    • sqlrun 权限设置好了,但启动不了,用本地的可以启动
    • MsSql中SQL 获取所有上级的实例代码
    • MySQL数据库设置远程访问权限方法小结
    • mysql快速添加百万条记录的语句
    • 深刻理解Oracle数据库的启动和关闭
    • SQL 重复记录问题的处理方法小结

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有