bitsCN.com
作为MYSQL DBA需要定期的查看服务器的索引情况,尤其是当你到了一个新的环境,开始接手一些数据库的维护工作,需要对线上服务器的索引使用情况有所了解。如果索引设置不合理,会导致服务器的性能受到非常大的影响,尤其是当SQL语句又比较复杂(比如多表联合查询等),本来就来大致介绍一下线上数据库的索引改造,本文只是对个人的工作总结,如果大家有更好的索引改造方案,也请指点。
这里提到的索引改造主要分成如下几个阶段:
一、去除重复的索引 1. 为什么要去除重复的索引A. 多余的索引占用磁盘空间,会引起不必要的磁盘ioB. 多余的索引会导致数据库在进行索引选择的时候变慢,尤其是索引越多的时候越突出(主要是相关联的索引才会影响索引选择)C. 重复的索引会导致表的更新变慢
2. 如何找出重复的索引这里给大家介绍一个好用的Maatkit工具,Maatkit工具安装完成以后就会有一个mk-duplicate-key-checker命令,这个命令就是检测数据库中存在的重复索引,并会自动生成删除重复索引的语句,非常方便。
下面介绍Maatkit工具的安装和mk-duplicate-key-checker命令的使用。
Maatkit工具的安装:wget http://maatkit.googlecode.com/files/maatkit-7540.tar.gztar zxvf maatkit-7540.tar.gz cd maatkit-7540 perl Makefile.PL make installmk-duplicate-key-checker命令的使用:mk-duplicate-key-checker --databases=databasename --user=root --password=passwd这里只需要制定数据库名,用户名以及密码,如果还想知道其他的一些参数,可以使用命令mk-duplicate-key-checker –help查看。备注:提醒大家一下,在执行完删除重复索引的语句之后,还需要再用这个工具重新检测一下,因为删除重复之后还可能会出现新的重复索引,尤其是PHPCMS V9的数据库。
二、去除不必要的索引何为不必要的索引:我的理解是有一些字段辨识度很低的,比如abolish字段只有0和1,就没有必要建立索引,因为使用索引和全表扫描的速度差不多甚至肯能使用索引扫描会更慢。如果实在要建立,就根据查询情况和其他的字段建立组合索引效果会更好。
1. 为什么要去除不必要的索引这个理由和去除重复的索引差不多,这里就不详述了。
2.如何找出不必要的索引可以通过information_schema的STATISTICS表找出类似的索引,然后再经过人工过滤,应该还有更好的办法,呵呵。比如如下查询,能查询出制定库的辨识度低的列索引:SELECT TABLE_NAME,INDEX_NAME,COLUMN_NAME,CARDINALITY FROM `information_schema`.`STATISTICS` WHERE TABLE_SCHEMA='databasename' AND CARDINALITY 三、添加必须的索引何为必须的索引:我的理解比较简单就是会影响到查询性能的索引就是必须的索引
1. 为什么要添加必须的索引必须的索引会影响到数据库的查询性能,很简单又很充分的理由,呵呵!
2. 如何找出必须的索引 关于这个问题,我认为是比较有技术含量的,我的步骤如下:A. 找出性能差或者没有使用到索引的SQL语句要找出性能差或者没有使用到索引的SQL语句,需要做一些设置,比如将long_query_time设置成0.2秒左右,这个根据自己的环境来定,打开log_queries_not_using_indexes参数,可以通过set global log_queries_not_using_indexes=on;命令打开。可以通过mysqldumpslow命令来对慢查询日志进行统计,比如按照执行时间长短来提取或者按照执行次数来提取或者查询记录数来提取。列举两个非常常用的组合:mysqldumpslow -s t -t 10 slow.log #找出10条消耗时间最长的慢查询SQLmysqldumpslow -s c -t 10 slow.log #找出10条执行次数最多的满查询SQB. 通过explain和profiling分析性能差和没有用到索引的sql,确定需要添加的索引(也可能需要改写对应的SQL,这个不在本文的讨论范围),关于explain和profiling的用法读者可以自己查看相关的文档,这里不赘述。 作者 飞鸿无痕 bitsCN.com

DHCP是“动态主机配置协议DynamicHostConfigurationProtocol”的首字母缩写词,它是一种网络协议,可自动为计算机网络中的客户端系统分配IP地址。它从DHCP池或在其配置中指定的IP地址范围分配客户端。虽然你可以手动为客户端系统分配静态IP,但DHCP服务器简化了这一过程,并为网络上的客户端系统动态分配IP地址。在本文中,我们将演示如何在RHEL9/RockyLinux9上安装和配置DHCP服务器。先决条件预装RHEL9或RockyLinux9具有sudo管理权限的普

一、安装nginx容器为了让nginx支持文件上传,需要下载并运行带有nginx-upload-module模块的容器:sudopodmanpulldocker.io/dimka2014/nginx-upload-with-progress-modules:latestsudopodman-d--namenginx-p83:80docker.io/dimka2014/nginx-upload-with-progress-modules该容器同时带有nginx-upload-module模块和ng

1,将java项目打成jar包这里我用到的是maven工具这里有两个项目,打包完成后一个为demo.jar,另一个为jst.jar2.准备工具1.服务器2.域名(注:经过备案)3.xshell用于连接服务器4.winscp(注:视图工具,用于传输jar)3.将jar包传入服务器直接拖动即可3.使用xshell运行jar包注:(服务器的java环境以及maven环境,各位请自行配置,这里不做描述。)cd到jar包路径下执行:nohupjava-jardemo.jar>temp.txt&

vue3项目打包发布到服务器后访问页面显示空白1、处理vue.config.js文件中的publicPath处理如下:const{defineConfig}=require('@vue/cli-service')module.exports=defineConfig({publicPath:process.env.NODE_ENV==='production'?'./':'/&

TCP客户端一个使用TCP协议实现可连续对话的客户端示例代码:importsocket#客户端配置HOST='localhost'PORT=12345#创建TCP套接字并连接服务器client_socket=socket.socket(socket.AF_INET,socket.SOCK_STREAM)client_socket.connect((HOST,PORT))whileTrue:#获取用户输入message=input("请输入要发送的消息:&

scp是securecopy的简写,是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。scp是加密的,rcp是不加密的,scp是rcp的加强版。因为scp传输是加密的,可能会稍微影响一下速度。另外,scp还非常不占资源,不会提高多少系统负荷,在这一点上,rsync就远远不及它了。虽然rsync比scp会快一点,但当小文件众多的情况下,rsync会导致硬盘I/O非常高,而scp基本不影响系统正常使用。场景:假设我现在有两台服务器(这里的公网ip和内网ip相互传都可以,当然用内网ip相互传

psutil是一个跨平台的Python库,它允许你获取有关系统进程和系统资源使用情况的信息。它支持Windows、Linux、OSX、FreeBSD、OpenBSD和NetBSD等操作系统,并提供了一些非常有用的功能,如:获取系统CPU使用率、内存使用率、磁盘使用率等信息。获取进程列表、进程状态、进程CPU使用率、进程内存使用率、进程IO信息等。杀死进程、发送信号给进程、挂起进程、恢复进程等操作。使用psutil,可以很方便地监控系统的运行状况,诊断问题和优化性能。以下是一个简单的示例,演示如何

一、安装前的准备工作在进行MySQL多实例的安装前,需要进行以下准备工作:准备多个MySQL的安装包,可以从MySQL官网下载适合自己环境的版本进行下载:https://dev.mysql.com/downloads/准备多个MySQL数据目录,可以通过创建不同的目录来支持不同的MySQL实例,例如:/data/mysql1、/data/mysql2等。针对每个MySQL实例,配置一个独立的MySQL用户,该用户拥有对应的MySQL安装路径和数据目录的权限。二、基于二进制包安装多个MySQL实例


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

SAP NetWeaver Server Adapter for Eclipse
Integrate Eclipse with SAP NetWeaver application server.

EditPlus Chinese cracked version
Small size, syntax highlighting, does not support code prompt function

Dreamweaver Mac version
Visual web development tools

Notepad++7.3.1
Easy-to-use and free code editor

VSCode Windows 64-bit Download
A free and powerful IDE editor launched by Microsoft
