2、mysql用户管理和索引

发布于:2024-12-21 ⋅ 阅读:(153) ⋅ 点赞:(0)

用户管理

创建用户

如在本机mysql创建用户,只允许192.168.233.22用户登录。

  • xy104:用户名
  • localhost:权限最高的root用户
  • %:任意IP地址
  • 192.168.233.22:允许登录的IP地址
  • identified  by:指定用户密码

这时候,只能在192.168.233.22上登录,192.168.233.21的mysql

赋权和解除权限—grant和revoke

查看用户权限

这时候可以看出xy104这个用户只有连接我们主mysql的权限

赋权

如给IP:192.168.233.22,mysql账户:xy104,赋予对xyjy表的select和insert权限

  • xyjy.*:左边是库名,右边是表名
  • *.*:表示给任意库,任意表赋权
  • all:所有权限,可以使用增删改查所有命令

删除权限

删除用户—drop

免密登录和密码修改

设置免密登录,需要先修改Mysql的配置文件 /etc/my.cnf ,添加如下一段:

重启 systemctl restart mysqld 服务后,这时候我们就不需要输入密码便可登录mysql

密码修改,首先 use mysql 进入mysql,查看密码,不过都是用hash算法加密的

select host,user,authentication_string,plugin from user\G;

接着把所有root密码置空

update user set authentication_string = '' where user = 'root';

最后修改root密码为abc123

注意:如果忘记了密码,想要修改密码,先要进行免密登录进去,才能修改密码,修改完之后也是需要关闭免密登录功能,才能使新密码生效。

mysql的索引

索引在所有的关系型数据库当中都有,索引是一个排序的列表,在这个列表当中存储了索引的值和

这个值对应数据所在的物理地址。

使用了索引之后,查询数据表时,可以不用全表扫描来定义数据所在行。

可以通过索引直接找到改行数据对应的物理地址,访问数据,提高查询的速度。

合理的设置索引可以提高数据库查询速度,也是必备的一项操作。

索引的优缺点

索引的优点:

1、索引就相当于书本的目录,当表很大或者查询涉及多个表(不超过3个)时,使用索引可以成千上万倍的提高查询速度。

2、可以降低数据库的I/O成本,索引也会降低数据库的排序成本。

3、也可以创建唯一性索引

4、可以加快表与表之间的连接速度

5、使用索引可以减少分组和排序的时间

6、通过索引可以提高数据库的恢复速度

索引的缺点:

1、索引也需要占用磁盘的空间

2、更新一个有索引的表比更新没有索引的表时间更长,引文索引也需要更新。

索引的创建原则

虽然索引可以提高访问速度,但是也不是任何清空下都需要索引。

在有索引的情况下,数据库是先查索引,然后再定位到数据。

索引的设置如果不合理,反而会增加数据库的负担。

1、表的主键和外键必须有索引,但是主键和外键默认就是索引。

2、超过300行数据的表,就需要添加索引。

3、和其他表连接的字段,要建立索引。

4、唯一性差的字段不适合设置索引

5、字段更新频繁,不适合设置索引。

6、经常出现在where的条件的字段当中,尤其是大表,应该建立索引。

7、在经常进行 group  by 和 order  by,要创建索引

索引的类型和创建

mysql的索引:默认就是B-TREE索引

  • 叶子节点上包含了条目直接指向到数据行,叶子节点之间也相互连接,形成了一个向下延申的指针。根据索引值一步一步定位到数据行。

哈希索引:把索引值转换成值,提高对应索引的hash值定位数据所在的行。

主键索引

如我们建立一张主键约束表,如下

创建完表之后,我们随便添加点数据进去。

使用explain  select 以id=1查看当前是否使用索引

显示了 id=1 使用了主键索引

一般索引

还是使用上面的建立的表,如 create  index 给name这一列创建索引

  • name(5):可以不加,不加的话,就是使用name这一列所有的值创建索引

使用explain  select 以name=zw1查看当前是否使用索引

当然也可以在创建表时直接建立索引,如下

唯一索引

该字段的值必须是唯一的,但是可以为空。添加唯一约束,自动就是唯一索引。

可以直接创建也可以建表时创建

组合索引

可以是单字段的索引,也可以是多字段的组合。

建表的时候创建组合索引

查看组合索引

建表之后创建组合索引

全文索引

适合模糊查询进行匹配时使用,用来检索文章当中的信息。

如我们给address建立全文索引,并查看address中有‘南‘的字段的索引