SQL优化是一个分析,优化,再分析,再优化的过程。站在执行计划的角度来说,我们这个过程,就是在不断的减少rows的数量。

1.建索引

2.减少表之间的关联

3.优化 sql,尽量让 sql 很快定位数据,不要让sql 做全表查询,应该走索引,把数据 量大的表排在前面

4.简化查询字段,没用的字段不要,已经对返回结果的控制,尽量返回少量数据

5.尽量用PreparedStatement 来查询,不要用 Statement

不要在列上使用函数和进行运算

不要在列上使用函数,这将导致索引失效而进行全表扫描。

尽量避免使用 != 或 not in或 <> 等否定操作符

尽量避免使用 or 来连接条件 多个单列索引并不是最佳选择,复合索引的最左前缀原则 查询中的某个列有范围查询,则其右边所有列都无法使用索引优化查找。

索引不会包含有NULL值的列

当查询条件左右两侧类型不匹配的时候会发生隐式转换,隐式转换带来的影响就是可能导致索引失效而进行全表扫描。

like 语句的索引失效问题

0.先运行看看是否真的很慢,注意设置SQL_NO_CACHE

1.where条件单表查,锁定最小返回记录表。这句话的意思是把查询语句的where都应用到表中返回的记录数最小的表开始查起,单表每个字段分别查询,看哪个字段的区分度最高

2.explain查看执行计划,是否与1预期一致(从锁定记录较少的表开始查询)

3.order by limit 形式的sql语句让排序的表优先查

4.了解业务方使用场景

5.加索引时参照建索引的几大原则

6.观察结果,不符合预期继续从0分析

如何做 MySQL 的性能优化?

为搜索字段创建索引。

* 避免使用 select *,列出需要查询的字段。 * 垂直分割分表。 * 选择正确的存储引擎。

实践中如何优化MySQL

顺序优化:

  1. SQL语句及索引的优化
  2. 数据库表结构的优化
  3. 系统配置的优化
  4. 硬件的优化

mysql常用优化的更多相关文章

  1. Mysql常用优化方案

    摘自:http://www.jb51.net/article/18934.htm 1.选取最适用的字段属性 MySQL可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也 ...

  2. mysql常用优化参数

    修改全站搜索 修改my.ini(my.cnf) ,在 [mysqld] 后面加入一行“ft_min_word_len=1”,然后 重启Mysql,再登录网站后台(模块管理->全站搜索)重建全文索 ...

  3. MySQL优化(2)--------常用优化

    前言 之前已经简单介绍了MySQL的优化步骤,那么接下来自然而是就是常用的SQL优化,比如inseer.group by等常用SQL的优化,会涉及SQL语句内部细节(这正是我缺乏的).最后希望自己能记 ...

  4. mysql数据库优化课程---14、常用的sql技巧

    mysql数据库优化课程---14.常用的sql技巧 一.总结 一句话总结:其实就是sql中那些函数的使用 1.mysql中函数如何使用? 选择字段 其实就是作用域select的选择字段 3.转大写: ...

  5. 浅谈MySQL中优化sql语句查询常用的30种方法 - 转载

    浅谈MySQL中优化sql语句查询常用的30种方法 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中使 ...

  6. php面试专题---MySQL常用SQL语句优化

    php面试专题---MySQL常用SQL语句优化 一.总结 一句话总结: 原理,万变不离其宗:其实SQL语句优化的过程中,无非就是对mysql的执行计划理解,以及B+树索引的理解,其实只要我们理解执行 ...

  7. MySQL常用SQL语句优化

    推荐阅读这篇博文,索引说的非常详细到位:http://blog.linezing.com/?p=798#nav-3-2 在数据库日常维护中,最常做的事情就是SQL语句优化,因为这个才是影响性能的最主要 ...

  8. Mysql性能优化一

    下一篇:Mysql性能优化二 mysql的性能优化无法一蹴而就,必须一步一步慢慢来,从各个方面进行优化,最终性能就会有大的提升. Mysql数据库的优化技术 对mysql优化是一个综合性的技术,主要包 ...

  9. 关于MySQL数据库优化的部分整理

    在之前我写过一篇关于这个方面的文章 <[原创]为什么使用数据索引能提高效率?(本文针对mysql进行概述)(更新)> 这次,主要侧重点讲下两种常用存储引擎. 我们一般从两个方面进行MySQ ...

  10. 30多条mysql数据库优化方法,千万级数据库记录查询轻松解决(转载)

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

随机推荐

  1. (系列十四)Vue3+WebApi 搭建动态菜单

    说明 该文章是属于OverallAuth2.0系列文章,每周更新一篇该系列文章(从0到1完成系统开发). 该系统文章,我会尽量说的非常详细,做到不管新手.老手都能看懂. 说明:OverallAuth2 ...

  2. 手撕vector

    Myclass.h #pragma once #include<iostream> #include<Windows.h> #define SUCCESS 1 // 成功 #d ...

  3. 【Amadeus原创】centos中挖矿病毒kdevtmpfsi的终极解决方法

    试了很久,最终的解决方法如下: 1,编写sh脚本:rm_wk.sh #!/bin/bash PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr ...

  4. 云数据备份 | CDN 日志备份最佳实践

    前言 ​ 内容分发网络(Content Delivery Network,CDN),是在现有 Internet 中增加的一层新的网络架构,可以有效降低用户访问延迟,提升可用性. CDN 按照小时粒度对 ...

  5. vue3笔记 - 父子组件通信

    父传子 说明:父组件将数据绑定在组件标签上:子组件props接收 父组件: <template> <Child :msg="msg" /> </tem ...

  6. TokenService

    https://github.com/ng-alain/delon/blob/master/packages/auth/src/token/token.service.ts set(data: ITo ...

  7. Windows下,terminal美化、命令行美化

    1. Terminal terminal 比 原生的 cmd 要更加好用 直接去 Micorosoft Store 下载就行了 2. 美化效果图 3. 美化步骤 3.1 需要的插件 git-alias ...

  8. iaas,saas,paas,daas区别:

    iaas,saas,paas,daas区别: Iaas(Infrastructure as a server):基础设施即服务,是基础层.PaaS(Platform as a Server):平台即服 ...

  9. Sealos Devbox 基础教程:使用 Cursor 从零开发一个代码猜古诗小游戏

    给你一段代码,让你根据代码来猜对应的古诗词,你能猜对吗? 这不是玩笑,还真有人这么干 这是一张在 1024 程序员节流传的代码猜诗句小游戏,相信很多程序员小朋友都看到过. 今天我们将用魔法打败魔法,通 ...

  10. Qt/C++实现帧同步播放器/硬解码GPU绘制/超低资源占用/支持8K16K/支持win/linux/mac/嵌入式/国产OS等

    一.前言 首先泼一盆冷水,在不同的电脑上实现完完全全的帧同步理论上是不可能的,市面上所有号称帧同步的播放器,同一台电脑不同拼接视频可以通过合并成一张图片来绘制实现完完全全的帧同步,不同电脑,受限于网络 ...