44 存储引擎 慢日志 权限

存储引擎

  create table db1 ( 

  id int auto_increment primary key,

  name varchar(32) not null default ''

)engine=Innodb charset=utf8;

分类(----------------------------------------重点)

Innodb

1.默认版本5.5以上

2.支持事务

3.不支持全文索引

MyIsam

1.默认版本5.5以下 5.3版本

2.不支持事务

3.支持全文索引

memory

全文索引插件;

Sphinx

索引;

作用:加快查询的速度

类似于一个目录

索引分类

1.主键索引

  加快查询 + 不能重复  +  不能为空    primary key 

2.唯一索引

  加快查询 + 不能重复  + 可以为空    unipue(列名)

3.联合唯一索引

  加快查询  +  不能重复  unipue (列名1,列名2)

4.普通索引

  加快查询    index('列名')

创建:

创建主键索引

第一种;

 create table db2 (

  id int auto_increment primary key ;

  name varchar(32) not null

)engine=Innodb charset=utf8;

第二种:

  alter table db2 change id(旧列名) id(新列名)  int auto_increment primary key;

唯一索引;

第一种;

 create table db2 (

  id int auto_increment primary key ;

  name varchar(32) not null,

  unique(name)

)engine=Innodb charset=utf8;

第二种:

 create unique  index 索引名称(ix_name) on 表名(t1)(name);

 create unique index    索引名称(ix_name,age) on 表名(t1)(name,age); 

普通索引

第一种;

 create table db2 (

  id int auto_increment primary key ;

  name varchar(32) not null,

  index ix_name(name)

)engine=Innodb charset=utf8;

第二种:

 create unique  index 索引名称(ix_name) on 表名(t1)(name);

删除

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

场景:
使用频繁的列上加一个索引

索引的缺点:

版本5.3以下:
删除和修改的速度就变慢了

版本5.5以上:
删除和修改的速度不是特别的慢

create table t12(
id int auto_increment primary key,
name varchar(32) not null default '',
email varchar(32) not null default ''
)engine=Innodb charset=utf8;


索引的使用:

explain 工具

查看sql语句是否用的上索引, 或者查看sql执行效率的工具

给执行的SQL语句出一个报告, 通过此报告来判断sql语句的执行效率和效果

ES (elasticsearch )
SQL语句的规则:

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

慢日志查询(slow log):

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

开启的步骤:
1. show variables like '%query%';

2. set global long_query_time = 1; 设置慢查询的时间
3. slow_query_log = ON
4. slow_query_log_file = E:programmysql-5.6.44-winx64dataoldboy-slow.log

普通日志记录(general log):

SQL审计 (记录sql的操作语句)

show variables like '%general%';
+------------------+------------------------------------------------+
| Variable_name | Value |
+------------------+------------------------------------------------+
| general_log | ON |
| general_log_file | E:programmysql-5.6.44-winx64dataoldboy.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/komorebi/p/11042081.html