Maison base de données tutoriel mysql MYSQL管理之索引改造简析_MySQL

MYSQL管理之索引改造简析_MySQL

Jun 01, 2016 pm 01:42 PM
影响 服务器

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

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Où trouver la courte de la grue à atomide atomique
1 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

VBOX_E_OBJECT_NOT_FOUND(0x80bb0001)Erreur VirtualBox VBOX_E_OBJECT_NOT_FOUND(0x80bb0001)Erreur VirtualBox Mar 24, 2024 am 09:51 AM

Lorsque vous essayez d'ouvrir une image disque dans VirtualBox, vous pouvez rencontrer une erreur indiquant que le disque dur ne peut pas être enregistré. Cela se produit généralement lorsque le fichier image disque de la VM que vous essayez d'ouvrir a le même UUID qu'un autre fichier image disque virtuel. Dans ce cas, VirtualBox affiche le code d'erreur VBOX_E_OBJECT_NOT_FOUND(0x80bb0001). Si vous rencontrez cette erreur, ne vous inquiétez pas, vous pouvez essayer quelques solutions. Tout d'abord, vous pouvez essayer d'utiliser les outils de ligne de commande de VirtualBox pour modifier l'UUID du fichier image disque, ce qui évitera les conflits. Vous pouvez exécuter la commande `VBoxManageinternal

Comment résoudre le problème selon lequel la recherche eMule ne peut pas se connecter au serveur Comment résoudre le problème selon lequel la recherche eMule ne peut pas se connecter au serveur Jan 25, 2024 pm 02:45 PM

Solution : 1. Vérifiez les paramètres d'eMule pour vous assurer que vous avez entré l'adresse du serveur et le numéro de port corrects ; 2. Vérifiez la connexion réseau, assurez-vous que l'ordinateur est connecté à Internet et réinitialisez le routeur ; est en ligne. Si vos paramètres sont S'il n'y a pas de problème avec la connexion réseau, vous devez vérifier si le serveur est en ligne ; 4. Mettez à jour la version d'eMule, visitez le site officiel d'eMule et téléchargez la dernière version du logiciel eMule ; 5. Demandez de l'aide.

Quelle est l'efficacité de la réception d'appels téléphoniques en mode avion ? Quelle est l'efficacité de la réception d'appels téléphoniques en mode avion ? Feb 20, 2024 am 10:07 AM

Que se passe-t-il lorsque quelqu'un appelle en mode avion ? Les téléphones portables sont devenus l'un des outils indispensables dans la vie des gens. Il s'agit non seulement d'un outil de communication, mais aussi d'un ensemble de fonctions de divertissement, d'apprentissage, de travail et autres. Avec la mise à niveau et l’amélioration continues des fonctions des téléphones mobiles, les gens deviennent de plus en plus dépendants des téléphones mobiles. Avec l’avènement du mode avion, les gens peuvent utiliser leur téléphone plus facilement pendant les vols. Cependant, certains s'inquiètent de l'impact que les appels d'autres personnes en mode avion auront sur le téléphone mobile ou sur l'utilisateur ? Cet article analysera et discutera sous plusieurs aspects. d'abord

Solution à l'impossibilité de se connecter au serveur RPC et à l'impossibilité d'accéder au bureau Solution à l'impossibilité de se connecter au serveur RPC et à l'impossibilité d'accéder au bureau Feb 18, 2024 am 10:34 AM

Que dois-je faire si le serveur RPC est indisponible et n'est pas accessible sur le bureau Ces dernières années, les ordinateurs et Internet ont pénétré tous les recoins de nos vies. En tant que technologie de calcul centralisé et de partage de ressources, l'appel de procédure à distance (RPC) joue un rôle essentiel dans la communication réseau. Cependant, nous pouvons parfois rencontrer une situation dans laquelle le serveur RPC n'est pas disponible, ce qui entraîne l'impossibilité d'accéder au bureau. Cet article décrit certaines des causes possibles de ce problème et propose des solutions. Tout d’abord, nous devons comprendre pourquoi le serveur RPC n’est pas disponible. Le serveur RPC est un

Explication détaillée du fusible d'installation CentOS et du serveur d'installation CentOS Explication détaillée du fusible d'installation CentOS et du serveur d'installation CentOS Feb 13, 2024 pm 08:40 PM

En tant qu'utilisateur LINUX, nous devons souvent installer divers logiciels et serveurs sur CentOS. Cet article présentera en détail comment installer Fuse et configurer un serveur sur CentOS pour vous aider à effectuer les opérations associées en douceur. Installation de CentOS fuseFuse est un cadre de système de fichiers en espace utilisateur qui permet aux utilisateurs non privilégiés d'accéder et de faire fonctionner le système de fichiers via un système de fichiers personnalisé. L'installation de Fuse sur CentOS est très simple, suivez simplement les étapes suivantes : 1. Ouvrez le terminal et connectez-vous en tant que. utilisateur root. 2. Utilisez la commande suivante pour installer le package fuse : ```yuminstallfuse3. Confirmez les invites pendant le processus d'installation et entrez `y` pour continuer. 4. Installation terminée

Comment configurer Dnsmasq comme serveur relais DHCP Comment configurer Dnsmasq comme serveur relais DHCP Mar 21, 2024 am 08:50 AM

Le rôle d'un relais DHCP est de transmettre les paquets DHCP reçus vers un autre serveur DHCP du réseau, même si les deux serveurs se trouvent sur des sous-réseaux différents. En utilisant un relais DHCP, vous pouvez déployer un serveur DHCP centralisé dans le centre réseau et l'utiliser pour attribuer dynamiquement des adresses IP à tous les sous-réseaux/VLAN du réseau. Dnsmasq est un serveur de protocole DNS et DHCP couramment utilisé qui peut être configuré en tant que serveur relais DHCP pour faciliter la gestion des configurations d'hôtes dynamiques sur le réseau. Dans cet article, nous allons vous montrer comment configurer Dnsmasq comme serveur relais DHCP. Sujets de contenu : Topologie du réseau Configuration d'adresses IP statiques sur un relais DHCP D sur un serveur DHCP centralisé

Guide des meilleures pratiques pour créer des serveurs proxy IP avec PHP Guide des meilleures pratiques pour créer des serveurs proxy IP avec PHP Mar 11, 2024 am 08:36 AM

Dans la transmission de données sur réseau, les serveurs proxy IP jouent un rôle important, aidant les utilisateurs à masquer leurs véritables adresses IP, à protéger la confidentialité et à améliorer la vitesse d'accès. Dans cet article, nous présenterons le guide des meilleures pratiques sur la façon de créer un serveur proxy IP avec PHP et fournirons des exemples de code spécifiques. Qu'est-ce qu'un serveur proxy IP ? Un serveur proxy IP est un serveur intermédiaire situé entre l'utilisateur et le serveur cible. Il agit comme une station de transfert entre l'utilisateur et le serveur cible, transmettant les demandes et les réponses de l'utilisateur. En utilisant un serveur proxy IP

Que dois-je faire si je ne peux pas accéder au jeu lorsque le serveur Epic est hors ligne ? Solution pour laquelle Epic ne peut pas accéder au jeu hors ligne Que dois-je faire si je ne peux pas accéder au jeu lorsque le serveur Epic est hors ligne ? Solution pour laquelle Epic ne peut pas accéder au jeu hors ligne Mar 13, 2024 pm 04:40 PM

Que dois-je faire si je ne peux pas accéder au jeu lorsque le serveur Epic est hors ligne ? Ce problème a dû être rencontré par de nombreux amis. Lorsque cette invite apparaît, le jeu authentique ne peut pas être démarré. Ce problème est généralement dû à des interférences du réseau et du logiciel de sécurité. Alors, comment doit-il être résolu ? J'aimerais partager la solution avec vous, j'espère que le didacticiel logiciel d'aujourd'hui pourra vous aider à résoudre le problème. Que faire si le serveur Epic ne peut pas accéder au jeu lorsqu'il est hors ligne : 1. Il peut être interféré par un logiciel de sécurité. Fermez la plateforme de jeu et le logiciel de sécurité, puis redémarrez. 2. La seconde est que le réseau fluctue trop. Essayez de redémarrer le routeur pour voir s'il fonctionne. Si les conditions sont correctes, vous pouvez essayer d'utiliser le réseau mobile 5g pour fonctionner. 3. Alors il y en aura peut-être plus

See all articles