MYSQL每执行一条GRANT命令,就会影响一个名为mysql的特殊数据库,所有的权限信息都保存在这个库下面的6个表中。这些表中包含了两张字段类型:范围字段和权限字段,范围字段指定用户、主机、和数据库;权限字段指定该用户可以在该范围内执行哪些操作。
user表和host表:用于确定一个用户是否可以链接mysql服务器已经该用户是否具有任何管理员权限。
db表和host表:确定用户可以访问哪些数据库。
table_priv表:确定用户可以访问数据库中的哪些表。
columns_priv表:确定用户可以访问表中的哪些列。
procs_priv表:确定用户可以执行哪些操作。
对于已经连接到mysql服务器的链接所发送的每一条请求,MySQL都会去检查是否有执行该请求的权限级别。系统首先在User表中检查全局权限,如果这些还不够,系统将检查db表和host表,如果仍然没有搜索到足够的权限,MYSQL将检查tables_priv表,如果权限还不够,最后将检查columns_priv表。
可以通过show grants for use查看用户所拥有的所有权限。
--------------------------------------------------我是分割线-----------------------------------------------
数据库的优化
1.可以通过explain select....检测查询结果中出现的多种问题
2.在设计数据库的好时候,尽可能使用最小化冗余的设计思想,少使用可变长度
3.OPTIMIZE TABLE tablename 修复因表更新删除发生的数据碎片的整理
4.创建索引,但是创建的索引要用到,不使用的索引反而影响查询速度了
5.使用默认值可以减少INSERT语句所花费的时间
......等等,还有好多,随时来补充吧
------------------------------------------------------我是分割线-----------------------------------------------------------
Mysql 数据库的备份
mysqldump -uroot -p mysql>all.sql 大概就是这么回事儿啦