mysql不被人知的秘密(3)
#2.这时我们再给test2授权:grant select ,update on mysql.* to test2; //只能查询和更新mysql的所有表。
这时就会发现user表中用户test2的所有权限都是N,而db表中test2用户对mysql数据库的select_priv和update_priv的值为Y。
下面tables_priv表,和columns_priv表的权限由自己分析。
经过以上分析,我们对mysql的权限有了更深一点的认识。
四:mysql日志
mysql日志有四种:
#1.二进制文件:以二进制的形式记录了数据库中的操作,但不记录查询语句
#2.错误日志:记录mysql的启动,关闭和运行错误等信息,默认开启且无法停止
#3.通用查询日志:记录用户登录和记录查询的信息
#4.慢查询日志:记录查询时间超过指定时间的操作
默认情况下,只开启了错误日志的功能,其余的根据需要管理员设置
##使用二进制日志还原数据库
因为二进制文件存储更新数据库的语句,所以可以用来还原数据库
mysqlbinlog filename.number | mysql -uroot -p //mysqlbinlog 用于打开二进制文件
使用mysqlbinlog进行还原数据库时,必须是编号(number)小的先还原。
五:性能优化
#1.性能参数:
show status ; //查询mysql的性能参数
show status like 'value' ; //查看某一参数
常用参数介绍如下:
Connections:连接mysql服务器的次数
Uptime:mysql服务器的上线时间
Slow_queries:慢查询的次数
Com_select:查询操作的次数
Com_insert:插入操作的次数
Com_update:更新操作的次数
Com_delete:删除操作的次数
#2.优化查询
##2.1用explain和describe分析查询语句
注使用索引查询记录时,一定要注意索引的使用情况 ->>见上面使用索引的注意事项
我们将上面用过的explain来分析
explain select * from student where num=2;
执行结果如下:
1.id :select语句的编号
2.select_type:select语句的类型
#simple:简单查询,不包含连接查询和子查询
#primary:主查询或最外层的查询语句
#union:连接查询的第二个或后面的查询语句
2.table:查询的表
4.type:表的连接类型
#system:表中只有一条记录
#const:表中有多条记录,但只从表中查询一条
#all:对表进行了完整的扫描
#eq_ref:多表连接时,后面的表使用了union或者primary key
#ref:多表连接时,后面使用了普通索引
#unique_subquery:子查询使用了unique或者primary key
#index_subquery:子查询使用了普通索引
#range:查询语句给出了查询范围
#index:对表中的索引进行了完整的扫描
5.possible_keys:查询中可能使用的索引
6.key:查询使用的索引
7.key_len:索引字段的长度
8.ref:表示使用哪个列或常数与索引一起查询记录
9.rows:查询的行数
10:extra:查询附加信息
相关新闻>>
- 发表评论
-
- 最新评论 进入详细评论页>>