首页 > 数据库 >数据库索引问题定位与分析

数据库索引问题定位与分析

时间:2023-06-27 17:14:35浏览次数:35  
标签:定位 数据库 查询 索引 user key sql

数据库索引问题定位与分析

一.数据库服务器添加慢查询配置

1.my.cnf文件添加监控慢查询配置

cd /etc/my.cnf

vi my.cnf

添加如下配置:

slow_query_log=1

long_query_time=0.01

2.重启数据库服务器

systemctl restart mysqld

3.检查配置是否生效

show variables like '%slow_query_log%';

cd /var/lib/mysql

二.慢查询日志分析

1.打印查询次数前20的sql语句

mysqldumpslow -s at -t 20 huangshao-slow.log

2.对慢查询sql语句进行执行计划分析

在navicat里面拷贝慢查询语句,执行前加explain表示分析sql

Const:表中只有一个匹配行,用到primary key或unique key

Eq_ref:唯一性索引扫描,key的所有部分被连接联接查询使用,且key是unique或primary key

ref:非唯一性索引扫描,或只使用了联合索引的最左前缀

Range:索引范围扫描,在索引列上进行给定范围内的检索,如between,in(1,100) Index:遍历索引...

All:全表扫描

Prossible key:使用哪个索引能找到行

Keys:sql语句使用的索引

rows:mysql 根据索引选择情况,估算查找数据所需读取的行数

三.优化方案

1.添加索引

选择sql语句中where字句中的字段添加索引,并保存索引

索引类型:

Normal:普通索引,允许重复数据

Unique:非普通索引,不允许重复数据

Fulltext:全文索引,适用于大字段

2.sql执行计划分析

explain

select

id, user_name, password, age, gender, phone_num, email, address, create_time, update_time

from user

where user_name = 'user_100'

3.优化效果对比

Tps提升10倍,响应时间减少90%

应用服务器cpu使用率提升65%

数据库服务器cpu使用率提升80%

标签:定位,数据库,查询,索引,user,key,sql
From: https://www.cnblogs.com/shaohuang/p/17509284.html

相关文章

  • 联合索引问题定位与分析
    联合索引问题定位与分析一.配置联合索引二.联合索引生效规则最左侧生效原则1.不生效情况Age在联合索引的第左侧,where字句中,没有用到age所以联合索引不生效2.部分生效情况Email在联合索引的最左侧,slq语句中有email字段,email生效3.联合索引都生效Sql语句中where字段与联合索引完全一致......
  • oracle 数据库正则匹配满足时间格式的并提取出时间
    SELECTsubstr(nr,(REGEXP_instr(nr,'\d{4}-(0[1-9]|1[0-2])-(0[1-9]|(1|2)[0-9]|3(0|1))')),19),a.*FROMxxxa  WHERE   REGEXP_LIKE(nr,'\d{4}-(0[1-9]|1[0-2])-(0[1-9]|(1|2)[0-9]|3(0|1))') 1.REGEXP_LIKE(nr,'\d{4}-(0[1-9]|1[0-2])-(0[......
  • docker compose 配置 mysql 容器启动时创建数据库
    要在DockerCompose中配置MySQL容器,在容器启动时创建数据库,你可以按照以下步骤进行操作:在你的DockerCompose文件中,定义一个MySQL服务。确保你已经设置了适当的环境变量,如MYSQL_ROOT_PASSWORD和MYSQL_DATABASE。下面是一个示例的DockerCompose配置:version:'3'......
  • Linux定时备份数据库
    一、mysql命令备份①创建存放mysql备份的文件夹backup②创建backup.sh备份脚本③赋予权限chmodu+xbackup.sh#!/bin/bash#全备方式,一般在从机上执行,适用于小中型mysql数据库#删除7天以前备份source/etc/profile#加载系统环境变量source~/.bash_profile......
  • 【AGC】云数据库云侧Python SDK集成使用方法
    使用场景云数据库服务端以前支持Node.JS和Java平台的ServerSDK。现在介绍一下服务端为Python平台时的使用方法。集成准备Python环境配置1.下载Python和PyCharm并安装。2.使用安装的python本身作为解释器。3.安装AGCPythonSDK。AGC环境配置1.在AGC创建项目和应用2.开通云数据库服......
  • Java跟数据库连接有问题怎么办?
    Java与数据库连接出现问题时,可以尝试以下几个步骤来解决问题:1、检查数据库驱动程序:确保使用的数据库驱动程序与数据库版本兼容。检查并确保已正确导入所需的数据库驱动程序的jar文件。2、验证数据库连接参数:确保提供了正确的数据库连接参数,包括数据库URL、用户名和密码等。验证......
  • docker compose部署mysql数据库
    1.想要达成的目标通过dockercompose来部署mysql,并实现一些列需求在mysql容器初始化时设置字符类型设置mysql容器的时区为中国时区设置mysqlroot密码,采用.env传入参数初始化时创建一个数据库初始化时创建用户名和密码挂载本地目录到容器内容器初始化时执行脚本,导入......
  • clickhouse数据库里面,类型 datetime, datetime64, datetime(3), datetime64(3)
     问:clickhouse数据库里面,类型datetime,datetime64,datetime(3),datetime64(3)分别是什么意思,举例详细说明 答:在ClickHouse数据库中,有以下几种日期时间类型:DateTime:这是一个8字节的整数类型,表示从公元1年1月1日开始的秒数。它只能存储到秒级别的精度。Dat......
  • selenium中使用CSS 定位
    CSS是一种语言,用来描述HTML和XML文档的表现。CSS使用选择器为页面元素绑定属性。CSS选择器可以较为灵活地选择控件的任意属性,一般情况下,CSS定位速度比XPath定位速度快 通过CSSSelector选择单个元素的方法是find_element(By.CSS_SELECTOR,CSSSelector参数)......
  • SAP BTP 平台 ABAP 编程环境如何维护自定义 Unit Of Measure 数据库表 T006
    在ABAPOn-Premises系统下,我们可以轻易在SAPGUI里对UnitofMeasure数据库表即T006进行维护:[图片]ABAP数据库表T006是SAP系统中的一个重要数据表,它用于存储与度量单位相关的信息。在SAP系统中,度量单位用于表示各种物料、服务和计量单位。这些信息对于物料管理、......