网站运营名词解释,网址升级中 请稍后访问,网站翻页,wordpress文章怎么加分享前言
通过上文#xff0c;我想各位盆友已熟悉MySQL的索引分类及其含义#xff0c;那么如何合理的使用呢#xff1f; 请继续围观此文#xff0c;一探究竟#xff01; 一、创建索引
首先#xff0c;我们一起学习索引是如何创建的#xff0c;又有哪些方式。
1. create t…前言
通过上文我想各位盆友已熟悉MySQL的索引分类及其含义那么如何合理的使用呢 请继续围观此文一探究竟 一、创建索引
首先我们一起学习索引是如何创建的又有哪些方式。
1. create table
最直接的方式就是建表时创建比如user表
CREATE TABLE user (user_id varchar(8) COLLATE utf8mb4_bin NOT NULL COMMENT 用户编号,user_name varchar(200) COLLATE utf8mb4_bin NOT NULL COMMENT 用户名称,user_type char(3) COLLATE utf8mb4_bin NOT NULL COMMENT 用户类型,create_time datetime NOT NULL COMMENT 创建时间,PRIMARY KEY (user_id),KEY index_user_type(user_type)
) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_bin COMMENT用户表;通过以上脚本实现了主键索引和普通索引的定义和创建。如需指定索引类型可按以下规则拼写 [索引类型]UNIQUE|FULLTEXT|… [索引关键字]INDEX|KEY [索引名称]index_column_name([字段]column_name1,column_name2,…) 2. create index
第二种在create table完成后继续进行create index操作。比如
CREATE INDEX index_user_type ON user (user_type);通过以上脚本实现了普通索引的定义和创建。如需指定索引类型可按以下规则拼写 [索引类型]UNIQUE|FULLTEXT|… [索引关键字]INDEX [索引名称]index_column_name [索引关键字]ON [表名]table_name ([字段]column_name1,column_name2,…) 3. alter table add index
第三种在create table完成后继续进行alter table add index操作。比如
ALTER TABLE user ADD INDEX index_user_type(user_type);通过以上脚本实现了普通索引的定义和创建。如需指定索引类型可按以下规则拼写 ALTER TABLE [表名]table_name [索引关键字] ADD [索引类型]UNIQUE|FULLTEXT|… [索引关键字]INDEX [索引名称]index_column_name([字段]column_name1,column_name2,…) 二、验证索引
通过创建索引操作我们可以快速完成数据库性能的优化。但是如果索引使用不当也可能适得其反无法如愿以偿。此刻我们怎么办请继续聚焦下一话题。
1. explain介绍 When EXPLAIN is used with an explainable statement, MySQL displays information from the optimizer about the statement execution plan. That is, MySQL explains how it would process the statement, including information about how tables are joined and in which order. 以上表述来自MySQL官方对explain的介绍翻译后大致是用于解释SQL的执行过程和顺序。
怎么使用呢很简单直接上菜 explain select * from table_name; 2. explain解读
当我们执行explain后会返回一个结果比如 其中每个字段的含义如下
字段名称字段含义id执行序号遵从“从大到小从上到下的原则select_type查询类型可分为Simple、Primary、Union、DEPENDENT UNION、UNION RESULT、SUBQUERY、DEPENDENT SUBQUERY、DERIVED。不同类型代表SQL的复杂度不同 table表名可以是物理表也可以是虚拟表partitions查询涉及的分区数量如存在分区表生效type类型需重点关注优化SQL的参考坐标。主要分为SYSTEM有且仅有一行记录、CONSTPRIMARY或UNIQUE、EQ_REF关联表PRIMARY或UNIQUE、REF普通KEY、RANGE范围、INDEX索引、ALL全表possible_keys可能使用的索引实际不一定key实际使用的索引key_len索引长度越短效率越高精度越低ref索引使用的列rows检索的行数filtered命中率Extra额外信息 结语
索引就像目录快速检索需要的内容。有效的利用索引可以让应用性能更好使用体验更佳。合理的创建索引也需要经验的总结和积累此技能是高性能开发必备。
今天过完年了新春第一天祝大家开工大吉 精彩回放 MySQL系列之数据导入导出 MySQL系列之索引入门上