Mysql 索引(理论>操作)

索引的相关概念:

数据结构,设置在表头上,给表头下存储的数据生成排队信息,保存在表对应的文件里(/var/lib/mysql/库名/表名.ibd),类似于书的目录

给表头  加索引的目的 为了加快 查找数据的速度!!!!

排队信息占物理硬盘,insert update delete 变慢

```

书的目录(新华字典)

笔画  10画  起始页 ------结束页

部首

拼音

```

表头下有MUL时是可以实现排序,算法,支持的排序算法,

索引算法:

有三种哦.:hash,Btree(二杈树),B+tree
show index from 库.表;   该命令查看表是否具有MUL;生成排队信息的适合.用的是那种算法;

索引类型:

        唯一索引     unique

        主键            primary  key

        外键            foreign key

        普通索引     index

        全文索引     fulltext    (char,varchar)

        单列索引     一个表头生成独立的索引信息

        多列索引     多个表头一起生成排队信息

使用普通索引:

        创建  create

        查看 MUL   show index from **;  desc  库.表. Table:表名  Colum_name:表头名  Key_name:索引名 (默认索引名和表头名相同)  Index_type:索引算法

        删除   drop index  表头 on 库.表;

       添加  create index 索引名 on on 库.表(表头名);

验证索引: explian

explian select 表头名 from 库.表 where 筛选条件;

建表三范式:衡量表创建的是否合理的标准

三范式是关系数据库设计的一种规范化范式,主要是为了避免数据冗余和数据插入、删除、更新异常。

  1. 第一范式(1NF):确保每个列都是原子的,即每个列都不能再分解成其他列。每个表中的每个字段都应该只包含一个值。

  2. 第二范式(2NF):确保非主键列完全依赖于主键,并且没有部分依赖。也就是说,每个非主键列必须完全依赖于主键,而不是仅依赖于主键的一部分。

  3. 第三范式(3NF):确保非主键列之间没有传递依赖。也就是说,一个非主键列不能依赖于另一个非主键列。

1NF:表头要满足原子性

2NF: 1NF+2NF表里一定要有主键

3NF: 1NF+2NF+3NF 表头下的数据不能有传递依赖

用户管理:

在数据库服务器里 添加用户  并授予权限

添加的用户是给网站使用

创建用户   create user

create user 用户名@"客户端地址"  identified by "密码";

授予权限  grant

grant 权限列表  on 库名 to 用户名@"客户端地址";

select insert drop create uodate

grant all on 表名

客户端使用添加的用户连接数据库服务器的命令

mysql -h数据库服务器ip  地址 [-P端口号]  -u用户名  -p密码;

grant all  on *.* to admin@"%";

show grants;查看权限select user();查看登录的用户

给已有的用户追加权限

create user webuser@"192.168.88.51" identified by "123456";

grant select on 库名.* to webuser@"192.168.88.51"

创建的用户   和  授予权限  存放在 默认的库mysql

tables_priv

查看已有用户的权限

select host,user from mysql.user;

show grants for admin@"%";

show grants for webuser@"192.168.88.51";

修改用户登录密码:

撤销权限: revoke  权限列表 on 库名 from 用户名@"客户端地址";

删除用户 drop user 用户名@"客户端地址";Mysql 索引(理论>操作)_第1张图片

Mysql 索引(理论>操作)_第2张图片

Mysql 索引(理论>操作)_第3张图片

Mysql 索引(理论>操作)_第4张图片

你可能感兴趣的:(mysql,数据库)