MySQL (7) MySQL索引和存储引擎

  

本篇博客讲的是MySQL的索引的功能和使用,以及存储引擎的基本简介



<强>


索引在MySQL中叫做“键”,是存储引擎用于快速找到记录的一种数据结构。索引对良好的性能非常关键,尤其是<强>当表中的数据量越来越大时,索引对于性能的影响愈来愈发重要。

作用:

用<强>生活实例来说,索引就好像书的目录,清单上的列表;好比人去吃火锅 , 当菜单拿到客户手上 , 客户可以根据菜单上的分类(海鲜 , 蔬菜类 , 肉类 , 饮料类等) , 根据自己的口味能第一时间找到自己想吃的菜 .



索引可分为 : 普通索引 , 唯一索引 , 全文索引 , 单列索引 , 多列索引 , 空间索引


语法格式:


CREATE TABLE 表名 (
字段名1 数据类型 [完整性约束条件…],
字段名2 数据类型 [完整性约束条件…],

);


示例 :

CREATE TABLE dept(
dept_id INT,
dept_name VARCHAR(30) ,
comment VARCHAR(50),
(dept_name)
);

MySQL(7)-mysql索引和存储引擎


CREATE TABLE dept2 (
dept_id INT,
dept_name VARCHAR(30) ,
comment VARCHAR(50),
(dept_name)
);

相比普通索引来说 , 比上面的索引选项多了一个unique选项


CREATE TABLE dept3 (
dept_id INT,
dept_name VARCHAR(30) ,
comment VARCHAR(50),
log text,

);

MySQL(7)-mysql索引和存储引擎



CREATE TABLE dept13 (
dept_id INT,
dept_name VARCHAR(30) ,
comment VARCHAR(50),
(, )
);

相比普通索引来说 , 就是将多个字段设置为索引




| | SPATIAL ] INDEX (字段名[(长度)] [ASC |DESC]) ;

创建普通索引示例:此方法要指定索引名称
CREATE INDEX (dept_name);

创建唯一索引示例:
CREATE (dept_name);

创建全文索引示例:
CREATE (dept_name);

创建多列索引示例:
CREATE INDEX (dept_name, comment);

[UNIQUE | FULLTEXT | SPATIAL ]
索引名 (字段名[(长度)] [ASC |DESC]) ;



: show create table 表名\G

: explain select * from 表名 where 字段名='xx';

drop index 索引名>mysql> 分隔符$ $//设置命令的界定符(也称为结束符)   mysql>创建过程autoinsert1()//创建autoinsert1这个存储过程(类似于shell脚本)   →开始   →声明我int默认1;   →而(i<100000)   →插入学校。t2值(我,“ccc”);   →我=+ 1;   →结束时;   →结束$ $   mysql>分隔符;   调用atuoinsert1 ();

 MySQL (7) MySQL索引和存储引擎



 MySQL (7) MySQL索引和存储引擎


从上述实验可以看的到,在一个存放1000 w的表中,查询一条数据跟创建索引后查询一条数据相差了4 s的时间,随着数据更大,查询时间也会不断增大,所以足以证明,


<人力资源/>



了就是如何,如何为存储的数据和如何,等技术的实现方法。因为在关系数据库中数据的存储是以表的形式存储的,所以存储引擎也可以称为<强> (即存储和操作此表的类型)

在Oracle和SQL Server等数据库中只有一种存储引擎,所有数据存储管理机制都是一样的。而MySQL数据库提供了多种存储引擎。用户可以根据不同的需求为数据表选择不同的存储引擎,用户也可以根据自己的需要编写自己的存储引擎。



显示引擎;
显示引擎\ G查看MySQL支持的存储引擎
显示变量如“storage_engine %”;查看当前的存储引擎
显示变量如“auto_inc %”;查看自增长的设置状态
显示全局变量就像“%概念网络%”查看概念网络环境变量设置
mysql>查看所有的环境变量
显示变量当前的会话
显示全局变量\ G全局

MySQL (7) MySQL索引和存储引擎