博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

MySQL索引 / 备份 / 权限设置

Posted on 2019-01-22 19:54  GraceNana  阅读(242)  评论(0编辑  收藏  举报
索引
索引的树形结构,快速找到对应的叶子节点,从硬盘全部读取到内存
添加索引:
 添加主键索引(聚集索引):
     创建的时候添加:添加索引的时候要注意,给字段里面数据大小比较小的字段添加,给字段里面的数据区分度高的字段添加
聚集索引的添加方式(每个表中有且只有一个,在设计数据库时添加,建表时效率高)
Create table t1(
     Id int primary key);
Create table t2(
     Id int
     Primary key(id));
创建完表之后添加
Alter table t1 add primary key(id);
删除
Alter table t1 drop primary key;
 辅助索引:查询时为用到主键索引对应的字段,为了加速查询采取辅助索引
唯一索引
Create table t1(
     Id int unique);
Create table t2(
     Id int
   unique key(id));

创建完表之后添加
Alter table s1 add unique key u_email(email);
删除   1)alter table s1 drop index u_email;
          2)drop index uni_name on t1;
普通索引
Create table t1(
     Id int,
     Index index_name(id));
Create index index_name on s1(id);
Alter table s1 add index index_s1(name)   --建表后增加辅助索引
删除:    1)drop index index_s1 on s1;
           2)Alter table s1 drop index u_email;
保证查询速度,最好在数据上进行4则运算,不要再字段上进行运算
联合索引与覆盖索引
和普通索引享同,就是加多个索引字段(最左匹配特性)
create table t1(
            Id int,
            Name char(10),
            Unique key index_name(id,name)
); 
将数据大小小的,区别度高的字段,放到最前面
Where id=10,name=’xxx’;
Where name = ‘xxxx’;用不到联合索引 

Sql优化神器explain
Explain + 查询语句 ; (预执行)
返回语句的查询情况(rows…)
有索引查询

   无索引查询


 
数据备份(逻辑备份,物理备份)
备份: C:\Users\grace>Mysqldump -h 127.0.0.1 -P 3306 -u root -p12345 db1 > C:\Users\grace\Desktop\python\bf\db1.sql 
恢复备份: C:\Users\grace>Mysql -h 127.0.0.1 -P 3306 -u root -p12345 db1 < C:\Users\grace\Desktop\python\bf\db1.sql 
-B参数(直接恢复,不需要重新创建库)
多个库备份,直接空格连接即可
备份: C:\Users\grace>Mysqldump -h 127.0.0.1 -P 3306 -u root -p12345 -B db1 db2 > C:\Users\grace\Desktop\python\bf\db1.sql  
恢复备份: C:\Users\grace>Mysql -h 127.0.0.1 -P 3306 -u root -p12345 < C:\Users\grace\Desktop\python\bf\db1.sql   
创建用户,指定权限(权限管理)
1. 创建用户
--指定ip的用户登录
create user 'grace'@'192.168.1.1' identified by '123';
--指定ip开头的用户登录
create user 'grace'@'192.168.1.%' identified by '123';
--指定任何ip的用户登录
create user 'grace'@'%' identified by '123';
2. 删除用户
Drop user 'username'@'IP';
3. 修改用户
Rename user 'username'@'IP' to 'newname'@'newIP';
4.    修改密码
set password for 'username'@'IP'=Password('newpwd');
5.    修改权限

--查看权限
show grants for 'username'@'IP';
--授权用户仅对db1.t1文件有查询\插入和更新的操作
grant select,insert,update on db1.t1 to 'username'@'%';
--表示文件所有权限
grant all privileges on db1.t1 to 'username'@'%';
--表示用户对所有数据库中文件有任何操作
grant all privileges on *.* to 'username'@'%';

--取消权限
--取消用户对db1的t1文件的任意操作
revoke all on db1.t1 from 'username'@'%';
--取消用户对db1所有表的权限
revoke all on db1.* from 'username'@'%';
--取消用户的所有表权限
revoke all privileges on *.* from 'username'@'%';
Flush privileges;   # 操作完刷新生效