MySQL avancée (VII): création d'index instruction SQL, vérifiez que les avantages de performance de requête d'index et les inconvénients de l'indice MySQL et utiliser le principe de

index

Objectifs d'apprentissage

  • Capable d'écrire des instructions SQL pour créer l'index

1. Introduction Index

Dans l'index MySQL, également connu sous le nom « clé », qui est un fichier spécial qui contient l'index table de données d'information de position de tous les dossiers, plus populaires, la base de données est comme un livre devant le catalogue, vous pouvez accélérer la base de données la vitesse de la requête.

scénario:

Quand une grande quantité de données dans la base de données, de trouver des données deviendront très lent, nous pouvons améliorer l'efficacité des requêtes de base de données dans l'index.

2. L'utilisation de l'indice

Voir la table ont été répertoriés:

show index from 表名;

Description:

  • colonne de clé primaire crée automatiquement un index

La création d'index:

-- 创建索引的语法格式
-- alter table 表名 add index 索引名[可选](列名, ..)
-- 给name字段添加索引
alter table classes add index my_name (name);

Description:

  • Le nom d'index ne sait pas, utilisez les noms de champs par défaut

Supprimer l'index:

-- 删除索引的语法格式
-- alter table 表名 drop index 索引名
-- 如果不知道索引名,可以查看创表sql语句
show create table classes;
alter table classes drop index my_name;

3. Case - Vérifier requête indice de performance

Créer une table de test testIndex:

create table test_index(title varchar(10));

Cent mille insérer les données dans la table:

from pymysql import connect

def main():
    # 创建Connection连接
    conn = connect(host='localhost',port=3306,database='python',user='root',password='mysql',charset='utf8')
    # 获得Cursor对象
    cursor = conn.cursor()
    # 插入10万次数据
    for i in range(100000):
        cursor.execute("insert into test_index values('ha-%d')" % i)
    # 提交数据
    conn.commit()

if __name__ == "__main__":
    main()

Vérifier l'indice de performance d'exploitation:

-- 开启运行时间监测:
set profiling=1;
-- 查找第1万条数据ha-99999
select * from test_index where title='ha-99999';
-- 查看执行的时间:
show profiles;
-- 给title字段创建索引:
alter table test_index add index (title);
-- 再次执行查询语句
select * from test_index where title='ha-99999';
-- 再次查看执行的时间
show profiles;

4. L'indice commun

Appelé indice composite d'indice commun, à savoir une table d'index comprend deux champs ou plus, est généralement utilisé lorsque la requête d'une pluralité de champs.

-- 创建teacher表
create table teacher
(
    id int not null primary key auto_increment,
    name varchar(10),
    age int
);

-- 创建联合索引
alter table teacher add index (name,age);

avantages Index conjoints:

  • Réduire le coût de l'espace disque, car chaque créez un index, en fait, est de créer un fichier d'index, il augmentera le coût de l'espace disque.

5. principe d'extrême gauche indice commun

Lorsqu'il est utilisé dans l'index de liaison, nous devons nous conformer à l'un des plus principe gauche que l'indice (nom, âge) pour soutenir le nom, le nom et requête combinée d'âge, la requête ne prend pas en charge un âge distinct, parce que l'articulation ne sert pas à créer l'index.

Exemple principes à l'extrême gauche:

-- 下面的查询使用到了联合索引
select * from stu where name='张三' -- 这里使用了联合索引的name部分
select * from stu where name='李四' and age=10 -- 这里完整的使用联合索引,包括 name 和 age 部分 
-- 下面的查询没有使用到联合索引
select * from stu where age=10 -- 因为联合索引里面没有这个组合,只有 name | name age 这两种组合

Description:

  • Dans les données de la requête, lorsqu'ils sont utilisés dans l'index de liaison doit veiller à ce que l'indice commun des conditions sur le terrain le plus à gauche qui apparaissent dans la requête, ou indice commun ne

6. Les principes et l'utilisation des avantages et des inconvénients de l'indice MySQL

  • avantages:
    1. Accélérez données requêtes
  • inconvénients:
    1. Il faut du temps pour créer un index et prendre l'espace disque, et avec la quantité croissante de données augmentera le temps qu'il faut
  • Utiliser des principes:
    1. En comparant les avantages et les inconvénients, pas indexer le mieux, mais a besoin de son propre usage rationnel.
    2. Régulièrement mis à jour la liste d'entre eux pour éviter de créer trop d'index sur un champ souvent utilisé pour interroger l'index doit être créé,
    3. Une petite quantité de tables de données est préférable de ne pas utiliser l'index, car en raison de moins de données, toutes les données peuvent interroger le temps encore plus court que le temps qu'il faut pour traverser l'indice, l'indice ne peut pas produire des performances optimales.
    4. Dans un champ sur la même valeur plus de ne pas indexer, comme seuls les hommes et les femmes de deux valeurs différentes sur la table des élèves « genre » champs. Au lieu de cela, dans un autre domaine, mais l'indice plus de valeur.

7. Résumé

  • L'indice est un moyen pour accélérer la base de requêtes
  • Créer un index à l'aide: alter nom d'index de table d'index add table (champ, xxx) [facultatif];
  • Supprimez l'index en utilisant: drop index Nom de la table alter table nom d'index;
Publié 729 articles originaux · éloge de won 964 · vues 120 000 +

Je suppose que tu aimes

Origine blog.csdn.net/qq_35456045/article/details/104828861
conseillé
Classement