MySQL入门指南

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品,最流行的关系型数据库管理系统之一。

为什么选择MySQL

  • MySQL社区版是免费的

  • 开放源码

  • 社区活跃

  • 安装使用简单

MySQL的逻辑架构

 

组成部分:

MySQL由八个部分组成,其中包含文件系统、存储引擎、管理服务工具、SQL接口、解析器、地址优化、缓存缓冲和连接池组成。

  • 文件系统主要用于存储数据文件
  • 存储引擎主要负责数据的读取和写入
  • 管理服务工具提供备份、恢复、安全和集群等等工作
  • SQL接口包含表创建、增删改查操作、存储过程、视图和触发器等等操作
  • 解析器对操作的优先顺序和事务相关的工作
  • 地址优化主要辅助做索引相关的工作
  • 缓存和缓冲提供SQL缓存
  • 连接池用于管理数据库连接

执行流程:

  1. java加载MySQL驱动
    Class.forName("com.mysql.jdbc.Driver");
  2. 获取MySQL连接
    Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/testdb", "root", "123456");
  3. MySQL的连接池与java保持连接,并进行授权验证
  4. 验证通过后建立session
  5. 创建statement
    Statement statement = con.createStatement();
  6. 执行sql
    statement.executeQuery("SELECT * FROM t_user");
  7. 通过SQL接口将SQL先进行缓存查询
  8. 如果没有缓存则交由解析器进行解析
  9. 解析完毕之后通过地址优化进行处理
  10. 地址优化器通过存储引擎到文件系统中检索数据
  11. 最终将数据返回给客户端

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;
posted @ 2017-12-09 15:21  huanStephen  阅读(248)  评论(0编辑  收藏  举报