2020-02-26 索引学习

navicat 连不上虚拟机数据库的常见原因防火墙没有关闭

查看防火墙状态: systemctl status firewalld.service

绿的running表示防火墙开启

执行关闭命令: systemctl stop firewalld.service

再次执行查看防火墙命令:systemctl status firewalld.service

执行开机禁用防火墙自启命令  : systemctl disable firewalld.service

完成

1. 索引作用

提供了类似于书中目录的作用,目的是为了优化查询

2. 索引的种类(算法)

B树索引

Hash索引

R树

Full text

GIS

聚集索引

MySQL自己生成的;聚集索引的叶子节点存的整行数据,只能有一个


辅助索引

叶子节点应该存的是id 再去调聚集索引,可以有多个;

单列辅助索引

联合索引(覆盖索引)比较重要

唯一索引


索引的命令操作

查询索引

pri    主键索引

MUL  辅助索引

UNI  唯一索引

创建索引

alter table `2-27` add index idx_name(SKUID);

唯一索引

mysql>alter table `2-27` add unique index_uid(SSUID);

ERROR 1062 (23000): Duplicate entry '3679998' for key 'index_uid'

联合索引

mysql>alter table `2-27` add index idx_SS(SKUID,SSUID);

前缀索引

alter table city add index idx_dis(district(5));

7.3删除索引

alter table `2-27` drop index idx_name;

展示索引

show index from `2-27`;

压力测试

未优化前的测试  测试代码如下:

mysqlslap --defaults-file=/etc/my.cnf --concurrency=100 --iterations=1 --create-schema='city' --query="select * from city.nine where SKUID='10952'" engine=innodb --number-of-queries=2000 -uroot -p123 -verbose


执行计划获取及分析

(1)获取到的是优化器选择完成的,他认为代价最小的执行计划.作用:语句执行前,先看执行计划信息,可以有效的防止性能较差的语句带来的性能问题.如果业务中出现了慢语句,我们也需要借助此命令进行语句的评估,分析优化方案。(2)select获取数据的方法1.全表扫描(应当尽量避免,因为性能低)2.索引扫描3.获取不到数据

执行计划获取

desc select * from city.nine where SKUID='10952';

+----+-------------+-------+------------+------+---------------+------+---------+------+--------+----------+-------------+

| id | select_type | table | partitions | type | possible_keys | key  | key_len | ref  | rows  | filtered | Extra      |

+----+-------------+-------+------------+------+---------------+------+---------+------+--------+----------+-------------+

|  1 | SIMPLE      | nine  | NULL      | ALL  | NULL          | NULL | NULL    | NULL | 918678 |    10.00 | Using where |

+----+-------------+-------+------------+------+---------------+------+---------+------+--------+----------+-------------+

table: city ---->查询操作的表 **

possible_keys: CountryCode,idx_co_po      ---->可能会走的索引  **

key: CountryCode  ---->真正走的索引    ***

type: ref  ---->索引类型        *****

Extra: Using index condition              ---->额外信息        *****

从左到右性能依次变好.

ALL:

全表扫描,不走索引

索引扫描: index <range <ref <eq_ref < const(system)  <null

例子:1.查询条件列,没有索引SELECT*FROMt_100wWHEREk2='780P';

2.查询条件出现以下语句(辅助索引列)

USEworldDESCcity;DESCSELECT*FROMcityWHEREcountrycode<>'CHN';

DESCSELECT*FROMcityWHEREcountrycodeNOTIN('CHN','USA');DESCSELECT*FROMcityWHEREcountrycodeLIKE'%CH%';

注意:对于聚集索引列,使用以上语句,依然会走索引DESCSELECT*FROMcityWHEREid<>10;

修改字段名

alter table ten change 序号 id int;

修改字段属性

alter table ten modify 序号 int not null primary key;

index:全索引扫描

mysql>desc select * from ten;

+----+-------------+-------+------------+------+---------------+------+---------+------+-------+----------+-------+

| id | select_type | table | partitions | type | possible_keys | key  | key_len | ref  | rows  | filtered | Extra |

+----+-------------+-------+------------+------+---------------+------+---------+------+-------+----------+-------+

|  1 | SIMPLE      | ten  | NULL      | ALL  | NULL          | NULL | NULL    | NULL | 30835 |  100.00 | NULL  |

+----+-------------+-------+------------+------+---------------+------+---------+------+-------+----------+-------+

1 row in set, 1 warning (0.00 sec)

mysql>desc select id from ten;

+----+-------------+-------+------------+-------+---------------+---------+---------+------+-------+----------+-------------+

| id | select_type | table | partitions | type  | possible_keys | key    | key_len | ref  | rows  | filtered | Extra      |

+----+-------------+-------+------------+-------+---------------+---------+---------+------+-------+----------+-------------+

|  1 | SIMPLE      | ten  | NULL      | index | NULL          | PRIMARY | 4      | NULL | 30835 |  100.00 | Using index |

+----+-------------+-------+------------+-------+---------------+---------+---------+------+-------+----------+-------------+

range:索引范围扫描  <> = and between or like  性能比较好的是> <

mysql>desc select * from ten where id>200;

+----+-------------+-------+------------+-------+---------------+---------+---------+------+-------+----------+-------------+

| id | select_type | table | partitions | type  | possible_keys | key    | key_len | ref  | rows  | filtered | Extra      |

+----+-------------+-------+------------+-------+---------------+---------+---------+------+-------+----------+-------------+

|  1 | SIMPLE      | ten  | NULL      | range | PRIMARY      | PRIMARY | 4      | NULL | 15417 |  100.00 | Using where |

+----+-------------+-------+------------+-------+---------------+---------+---------+------+-------+----------+-------------+

最好把or改成union

ref  辅助索引等值查询

desc select  * from ten where SKUID= '1452256'

eq_ref :多表连接时,子表使用主键列或者唯一列作为连接条件:

A join B

on a.x = B.y

const(system):主键和唯一键

压力测试结果:

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,122评论 6 505
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,070评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,491评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,636评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,676评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,541评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,292评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,211评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,655评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,846评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,965评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,684评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,295评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,894评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,012评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,126评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,914评论 2 355

推荐阅读更多精彩内容