Ddy 44 存储引擎 索引 权限

存储引擎

1.什么是存储引擎:指的是如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。

存储引擎分类

1.innodb

 1.默认版本包含5.6

 2.支持事物操作使用

 3.不支持全文索引

 4.索引和数据都是在同一个文件中,.idb

2.MyIsam

1.默认版本5.5以下

2.不支持事物操作

3.支持全文索引

4. .frm 表的结构

    .MYD 表数据

    .MYI表索引

3.memory

索引

1.什么是索引:索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针。更通俗的说,数据库索引好比是一本书前面的目录,能加快数据库的查询速度。

2.作用:加快查询速度

分类

1.主键索引

 主键索引:加速查询 ;不能重复;不能为空  ;primary key

 主键索引:
# 第一种:
# create table t1(
# id int auto_increment primary key,
# name varchar(32) not null default ''
# )engine=Innodb charset=utf8;
# 第二种:

# alter table t1 change id id int auto_increment primary key;

2.唯一索引

唯一索引:加快查询;不能重复;unique(列名)

联合唯一索引:加快查询;不能重复;unique(列名,列名)

唯一索引:
# 第一种:
# create table t1(
# id int auto_increment primary key,
# name varchar(32) not null default '',
# unique ix_name ('name')
# )engine=Innodb charset=utf8;
#
# 第二种:
# create unique index 索引名称(ix_name) on 表名(t1)(name);
# create unique index 索引名称(ix_name_age) on 表名(t1)(name,age);

3.普通索引

普通索引:加快查询

普通索引:
#
# 第一种:
# create table t1(
# id int auto_increment primary key,
# name varchar(32) not null default '',
# index ix_name ('name')
# )engine=Innodb charset=utf8;
#
# 第二种:
# create index 索引名称(ix_name) on 表名(t1)(name);

4.删除索引

drop  index 索引名称(ix_name) on 表名(t1);

5.索引缺点

版本5.3以下:
# 删除和修改的速度就变慢了
#
# 版本5.5以上:
# 删除和修改的速度不是特别的慢
 
  

6.explain

1.作用:查看sql语句是否使用了索引和执行效率

2.使用:explain sql语句   例:explain select * from where id=1\G

 
  

7.SQL语句规则


#
# - 不建议使用 like 进行搜索
# - 组合索引最左前缀
# 如果组合索引为:(name,email)
# where name and email -- 使用索引
# where name -- 使用索引
# where email -- 不使用索引
 
  

慢日志查询

1.日志文件:记录了执行速度特别慢的sql语句

2.如何使用:

1. show variables like '%query%';
#
# 2. set global long_query_time = 1; 设置慢查询的时间
# 3. slow_query_log = ON
# 4. slow_query_log_file = E:\program\mysql-5.6.44-winx64\data\oldboy-slow.log
 
  

普通日志查询

show variables like '%general%';
# +------------------+------------------------------------------------+
# | Variable_name | Value |
# +------------------+------------------------------------------------+
# | general_log | ON |
# | general_log_file | E:\program\mysql-5.6.44-winx64\data\oldboy.log |
# +------------------+------------------------------------------------+
# set global general_log = ON;
 
  

权限管理

创建用户
# create user '用户名'@'IP地址' identified by '密码';
# creaee user 'zekai'@'192.168.1.123' identified by '123qwe';
# creaee user 'zekai'@'192.168.1.%' identified by '123qwe';
# create user 'zekai'@'%' identified by '123qwe';
#
# 删除用户
# drop user '用户名'@'IP地址';
# 修改用户
# rename user '用户名'@'IP地址' to '新用户名'@'IP地址';
#
# 修改密码
# set password for '用户名'@'IP地址' = Password('新密码')
#
# 授权:
# grant 权限 on 数据库.表 to '用户'@'IP地址' -- 授权
#
# grant select on db1.* to 'zekai'@'%';
# grant select on *.* to 'zekai'@'%';
# grant select, insert, delete on db1.* to 'zekai'@'%';
#
# 记住:
# flush privileges;
 
   
  


 

转载于:https://www.cnblogs.com/tfzz/p/11040233.html

猜你喜欢

转载自blog.csdn.net/weixin_33829657/article/details/93794238