0
点赞
收藏
分享

微信扫一扫

MySQL基础篇:深入理解存储引擎和常用DBA命令,提升数据库管理效率

Hyggelook 2023-09-13 阅读 10


MySQL基础篇:深入理解存储引擎和常用DBA命令,提升数据库管理效率_数据库

存储引擎的使用

数据库中的各表均被(在创建表时)指定的存储引擎来处理。

服务器可用的引擎依赖于以下因素:

  • MySQL的版本
  • 服务器在开发时如何被配置
  • 启动选项

为了解当前服务器中有哪些存储引擎可用,可使用SHOW ENGINES语句:

mysql> show ENGINES;
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine             | Support | Comment                                                        | Transactions | XA   | Savepoints |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| PERFORMANCE_SCHEMA | YES     | Performance Schema                                             | NO           | NO   | NO         |
| MRG_MYISAM         | YES     | Collection of identical MyISAM tables                          | NO           | NO   | NO         |
| CSV                | YES     | CSV storage engine                                             | NO           | NO   | NO         |
| BLACKHOLE          | YES     | /dev/null storage engine (anything you write to it disappears) | NO           | NO   | NO         |
| MyISAM             | YES     | MyISAM storage engine                                          | NO           | NO   | NO         |
| InnoDB             | DEFAULT | Supports transactions, row-level locking, and foreign keys     | YES          | YES  | YES        |
| ARCHIVE            | YES     | Archive storage engine                                         | NO           | NO   | NO         |
| MEMORY             | YES     | Hash based, stored in memory, useful for temporary tables      | NO           | NO   | NO         |
| FEDERATED          | NO      | Federated MySQL storage engine                                 | NULL         | NULL | NULL       |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
9 rows in set (0.37 sec)

常用的存储引擎

MyISAM存储引擎

MyISAM存储引擎是MySQL最常用的引擎。

它管理的表具有以下特征:

1、使用三个文件表示每个表:

  • 格式文件 — 存储表结构的定义(mytable.frm)
  • 数据文件 — 存储表行的内容(mytable.MYD)
  • 索引文件 — 存储表上索引(mytable.MYI)

 2、灵活的AUTO_INCREMENT字段处理

 3、可被转换为压缩、只读表来节省空间

InnoDB存储引擎

  1.  InnoDB存储引擎是MySQL的缺省引擎。
  2. 它管理的表具有下列主要特征:
  • 每个InnoDB表在数据库目录中以.frm格式文件表示
  • InnoDB表空间tablespace被用于存储表的内容
  •  提供一组用来记录事务性活动的日志文件
  • 用COMMIT(提交)、SAVEPOINT及ROLLBACK(回滚)支持事务处理
  • 提供全ACID兼容
  • 在MySQL服务器崩溃后提供自动恢复
  • 多版本(MVCC)和行级锁定
  • 支持外键及引用的完整性,包括级联删除和更新


DBA命令

新建用户

CREATE USER username IDENTIFIED BY 'password';

说明:username你将创建的用户名, password该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密


授权

grant all privileges on dbname.tbname to 'username'@'login ip' identified by 'password' with grant option;

  • dbname=*表示所有数据库
  • tbname=*表示所有表
  • login ip=%表示任何ip
  • password为空,表示不需要密码即可登录
  •  with grant option;  表示该用户还可以授权给其他用户

细粒度授权

首先以root用户进入mysql,然后键入命令:grant select,insert,update,delete on *.* to p361 @localhost Identified by "123"; 

如果希望该用户能够在任何机器上登陆mysql,则将localhost改为 "%" 。


粗粒度授权

GRANT ALL PRIVILEGES ON *.* TO 'p361'@'%' Identified by "123"; 

注意:用以上命令授权的用户不能给其它用户授权,如果想让该用户可以授权,用以下命令:

GRANT ALL PRIVILEGES ON *.* TO 'p361'@'%' Identified by "123"  WITH GRANT OPTION;

privileges包括

  • alter:修改数据库的表
  • create:创建新的数据库或表
  • delete:删除表数据
  • drop:删除数据库/表
  • index:创建/删除索引
  • insert:添加表数据
  • select:查询表数据
  • update:更新表数据
  • all:允许任何操作
  • usage:只允许登录

回收权限

revoke privileges on dbname[.tbname] from username;或

revoke all privileges on *.* from p361;

导出

导出整个数据库

mysqldump -u root -p db_name > test_db.sql

导出指定库下的指定表

mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名

导入

登录MYSQL数据库管理系统之后执行:source D:\ bjpowernode.sql

举报

相关推荐

0 条评论