数据库的基本操作
启动关闭 MySQL 服务
MySQL 安装好后,默认是当 Windows 启动、停止时,MySQL 也自动、停止。不过,用户可以使用 Windows 下的服务管理器或从命令行使用 NET 命令来控制 MySQL 服务器。
-
使用 Windows 下的服务管理器
单击开始菜单,在搜索框中输入 “services.msc”,按【enter】键确认。在服务管理器中找到服务名为 MySQL 80 的服务项(我使用的是 MySQL 8.0 版本,5.7 版本之前服务名是 MySQL),点击鼠标右键就可以选择关闭、暂停、重新启动 MySQL 服务了。
-
使用 NET 命令
单击开始菜单,在搜索框中输入 “cmd”,就会出现命令提示符,再右键点击以管理员方式运行(否则会出现系统错误,拒绝访问)。输入
net start MySQL80
按回车键就能启动 MySQL 服务了,停止 MySQL 服务的命令为:net stop MySQL80
。
登入 MySQL 数据库
以 Windows 命令行方式登录数据库,连接 MySQL 的命令格式为:mysql -h hostname -u username -p
其中 MySQL 为登录命令,-h 后面的参数是服务器的主机地址,在这里客户端与服务器在同一台机器,所以输入 localhost 或者IP地址 127.0.0.1,-u 后面跟登录数据库的用户名称,在这里为 root,-p 是用户登录密码。
创建数据库
MySQL 安装完成后,会在其 data 目录下自动创建几个必需的数据库,可以使用 show databases;
语句来查看当前所有存在的数据库。其中 mysql 是必需的,它描述用户访问权限,test 数据库一般给用户用于测试操作,其他的数据库将在后面介绍。
创建数据库的 SQL 语句:create database database_name;
数据库建好之后,可以使用 show create database database_name;
声明查看数据库的定义。
删除数据库
删除数据库是将已经存在的数据库从磁盘上删除,清除之后,数据库中的所有数据也将一同删除。
删除数据库的 SQL 语句:drop database database_name;
数据库存储引擎
数据库存储引擎是数据库底层软件,数据库管理系统(DBMS)使用数据引擎进行创建、查询、更新、删除操作。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎,还可以获得特定的功能。现在很多不同的数据库管理系统都支持多种不同的数据引擎。MySQL 的核心就是存储引擎。
MySQL 存储引擎简介
MySQL 提供多个不同的存储引擎,包括处理事务安全的引擎和处理非事务安全的引擎。MySQL 不需要整个服务器都使用同一种存储引擎,每个表都可以使用不同的存储引擎。可以使用 show engines;
语句查看系统所支持的引擎类型。
Support 列的值表示某种引擎是否能使用:YES 表示可以使用,NO 表示不能使用,DEFAULT 表示该引擎为当前默认存储引擎。
InnoDB 存储引擎
InnDB 是事务型数据库的首选引擎,支持事务安全表(ACID),支持行锁定和外键。MySQL 5.5.5之后,InnoDB 作为默认存储引擎。
MyISAM 存储引擎
MyISAM 基于 ISAM 的存储引擎,并对其进行扩展。它是在 Web、数据存储和其他应用环境下最常使用的存储引擎之一。MyISAM 拥有较高的插入、查询速度、但不支持事务。在 MySQL 5.5.5 之前版本中,MyISAM 是默认存储引擎。
MEMORY 存储引擎
MEMORY 存储引擎将表中的数据存储到内存中,为查询和引用其他表数据提供快速访问。
存储引擎的选择
不同存储引擎都有各自的特点,以适应不同的需求。为了做出选择,首先需要考虑每一个存储引擎提供了哪些不同的功能。
功能 | MyISAM | Memory | InnoDB | Archive |
---|---|---|---|---|
存储限制 | 256TB | RAM | 64TB | None |
支持事务 | No | No | Yes | No |
支持全文索引 | Yes | No | No | No |
支持数索引 | Yes | Yes | Yes | No |
支持哈希索引 | No | Yes | No | No |
支持数据缓存 | No | N/A | Yes | No |
支持外键 | No | No | Yes | No |
-
如果要提供提交、回滚和崩溃恢复能力的事务安全(ACID兼容)能力,并要求实现并发控制,InnoDB 是个很好的选择。
-
如果数据表主要用来插入和查询记录,则 MyISAM 引擎能提供较高的处理效率。
-
如果只是临时存放数据,数据量不大,并且不需要较高的数据安全性,可以选择将数据保存在内存中的
Memory 引擎,MySQL 中使用该引擎作为临时表,存放查询的中间结果。
-
如果只有 INSERT 和 SELECT 操作,可以选择 Archive 引擎,Archive 存储引擎支持高并发的插入操作,但是本身并不是事务安全的 。Archive存储引擎非常适合存储归档数据,如记录日志信息可以使用 Archive引擎。
-
使用哪一种引擎要根据需要灵活选择,一个数据库中多个表可以使用不同引擎以满足各种性能和实际需求。使用合适的存储引擎,将会提高整个数据库的性能。