MySQL入门指南
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品,最流行的关系型数据库管理系统之一。
为什么选择MySQL
-
MySQL社区版是免费的
-
开放源码
-
社区活跃
-
安装使用简单
MySQL的逻辑架构
组成部分:
MySQL由八个部分组成,其中包含文件系统、存储引擎、管理服务工具、SQL接口、解析器、地址优化、缓存缓冲和连接池组成。
- 文件系统主要用于存储数据文件
- 存储引擎主要负责数据的读取和写入
- 管理服务工具提供备份、恢复、安全和集群等等工作
- SQL接口包含表创建、增删改查操作、存储过程、视图和触发器等等操作
- 解析器对操作的优先顺序和事务相关的工作
- 地址优化主要辅助做索引相关的工作
- 缓存和缓冲提供SQL缓存
- 连接池用于管理数据库连接
执行流程:
- java加载MySQL驱动
Class.forName("com.mysql.jdbc.Driver");
- 获取MySQL连接
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/testdb", "root", "123456");
- MySQL的连接池与java保持连接,并进行授权验证
- 验证通过后建立session
- 创建statement
Statement statement = con.createStatement();
- 执行sql
statement.executeQuery("SELECT * FROM t_user");
- 通过SQL接口将SQL先进行缓存查询
- 如果没有缓存则交由解析器进行解析
- 解析完毕之后通过地址优化进行处理
- 地址优化器通过存储引擎到文件系统中检索数据
- 最终将数据返回给客户端
MySQL存储引擎
我们通常使用Myisam和InnoDB存储引擎
- InnoDB存储的文件
- frm:存储表结构
- ibd:存储数据和索引
- Myisam存储的文件
- frm:存储表结构
- MYD:存储数据
- MYI:存储索引
下面我们看一下这两个存储引擎的比较
大家可以根据自己的业务进行选择,存储引擎是针对表的,所以一个数据库里可以包含多种存储引擎。
编码格式
在my.cnf文件中追加一下内容
[mysqld]
character-set-server=utf8
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
修改数据库的字符编码
mysql> ALERT DATABASE db_name DEFAULT CHARACTER SET UTF8;
修改表的字符编码
mysql> ALERT TABLE table_name DEFAULT CHARACTER SET UTF8;
修改表字段的字符编码
mysql> ALERT TABLE table_name CONVERT TO CHARACTER SET UTF8 COLLATE utf8_general_ci;