首页 > 数据库 >MySQL索引优化

MySQL索引优化

时间:2023-05-20 22:02:16浏览次数:35  
标签:排序 数据 创建 查询 索引 MySQL 数据结构 优化

1.索引是啥?

简单来说是可以快速查找数据的数据结构。

数据结构就是存储数据的结构,例如数组,链表...

在数据库系统中还维护着满足特定查找算法的数据结构,这些数据结构以某种引用指向表中是数据,这些数据结构就是索引,它让我们可以用算法来查找数据。

MySQL索引优化_数据结构

假设有个user表,通过name字段找李白,没有索引的话就会全表扫描,从头到尾遍历完,数据多的时候效率很低;有了索引就像有了目录。

2.索引好不好?

可以提高检索效率,降低IO成本,降低排序成本,降低CPU的消耗;

索引是要占空间的,对表更新的时候MySQL不仅要更新数据,还要更新索引信息,保存索引文件。

总的来说查询效率提升了,更新(增删改)效率降低了。

3.要不要建索引?

创建索引的情况

(1)主键自动建立唯一索引;

(2)频繁作为查询条件的字段应该创建索引(where后面的语句);

(3)查询中与其他表关联的字段,外键关系建立索引;

(4)多字段查询下倾向创建组合索引;

(5)排序字段通过索引访问大大提高排序速度;

(6)查询中统计或者分组字段。

不推荐索引的情况

(1)表记录太少;

(2)经常增删改的表;

(3)where条件里用不到的字段不要索引。

4.索引类型四种

可以随表创建,也可以单独创建;

MySQL索引优化_sql索引优化_02

MySQL索引优化_sql索引优化_03

5.怎么看SQL语句的性能?

explain关键字,重点看type、key、rows、extra

type里

MySQL索引优化_sql索引优化_04

MySQL索引优化_数据_05

extra里

尽量避免Using filesort(排序时没使用索引)Using temporary(分组时没使用索引)的出现;

6.性能不行怎么优化?




标签:排序,数据,创建,查询,索引,MySQL,数据结构,优化
From: https://blog.51cto.com/u_15742597/6318073

相关文章

  • mysql基础_视图
    介绍MySQL视图(View)是一种虚拟存在的表,同真实表一样,视图也由列和行构成,但视图并不实际存在于数据库中。行和列的数据来自于定义视图的查询中所使用的表,并且还是在使用视图时动态生成的。优点定制用户数据,聚焦特定的数据简化数据操作提高数据的安全性共享所需数据......
  • Mysql-设置连接数
    mysql连接数太多(SequelizeConnectionError:Toomanyconnections)这个就是最常见的问题了。因为我做的这个是前端监控系统,日志上报量比较大,所以经常会遇到连接数不够用的情况。除了你要使用其他技术来缓解并发量,还需要适当的设置mysql数据库的最大连接数。那么怎么增加mysql的最......
  • 空基类优化(EBO)
    空基类优化基础为保证同一类型的不同对象地址始终不同,要求任何对象或成员子对象的大小至少为1个字节,即使这个类为一个空类。structA{};//只包含类型成员、非虚函数或静态成员变量intmain(){DBG_LOG("......
  • Java中的并发编程:线程池的使用与优化
    在Java编程中,处理并发任务是一项常见而重要的任务。合理地管理线程可以提高程序的性能和响应性。本文将介绍Java中线程池的使用和优化技巧,帮助开发者更好地处理并发编程的挑战。1.线程池的基本概念线程池是一种用于管理线程的技术,它通过预先创建一组线程,并将任务分配给这些线程来......
  • MySQL联表查询之连接和子查询
    一.连接内连接:内连接一共有两种方式:隐式内连接:select 字段名from 表1,表2 where 条件.....;显式内连接:select 字段名from 表1[inner] join表2 on 连接条件; 内连接就是查询绿色部分,也就是两张或多张表相同的地方最多的就是等值连接外连接:左外连......
  • MySQL的主从复制之异步复制的简单实现
    (文章目录)前言MySQL异步复制是MySQL数据库中的一种数据复制方式,主要用于在多个MySQL实例之间复制数据。与同步复制不同,异步复制并不要求每个MySQL实例都必须立即接收新数据的更新。相反,更新在主MySQL实例上执行后,异步地传输给从MySQL实例,所以数据的同步可能需要花费一定的时间......
  • 报错 libmysqlclient.so.20: cannot open shared object file: No such file or direc
    1背景环境:centos7,c++程序最近在重新部署一个老软件都时候遇到libmysqlclient.so.20:cannotopensharedobjectfile:Nosuchfileordirectory错误,这是提示缺失mysql的连接文件2解决方法错误提示已经很明显了,那就缺啥补啥,找一台装过mysql的机器查找此文件[root@localh......
  • DC NXT 综合优化策略
    综合优化策略compile_ultra designwarelibrary数据路径优化CPR可通过compile命令使用,但必须通过-map_effort high选项显式调用组合逻辑复制始终启用,并根据需要进行以改进时序。没有控制来关闭它,寄存器复制也可用。库分析基于库中可用单元的简单布尔函数......
  • 强制使用索引
    可以通过使用MySQL的FORCEINDEX或者HINTS来强制使用索引查询。FORCEINDEX语句在查询中使用FORCEINDEX语句,强制MySQL使用指定索引。FORCEINDEX语句可以在查询内将优先级更高的索引强制用于查询。例如:--强制使用idx_name索引查询SELECT*FROMtable_nameFORCEINDEX(......
  • Windows 2007卸载mysql数据库
    文档课题:Windows2007卸载mysql数据库.系统:windows2007专业版数据库:mysql5.5.621、关闭服务--在service服务中关闭MySQL服务,如下所示:2、卸载MySQL服务--在控制面板删除MySQL程序.3、删除相关文件夹--删除mysql在电脑硬盘上所有文件,位置C:\ProgramFiles\MySQL.--删除C:\Pro......