目录
7.mysql的体系结构,也可以称之为mysql的工作原理:
1.数据库管理系统概述
(1)数据库( DATABASE - DB)是一种专门存储信息和维护信息的容器,严格地说数据库是“按照数据结构来组织、存储和管理信息的仓库”。
(2)数据库管理系统(Database Management System-DBMS)管理数据库的软件。具有对数据存储、安全、一致性、并发操作、恢复和访问等功能。
(3)数据词典(系统目录),也是一种数据,只不过这些数据记录的是数据库中存放的各种对象的定义信息和其他一些辅助管理信息,包括名字、结构、位置、类型等。这些数据被称为元数据(metadata)。
2.数据库的特征
(1)数据结构化
(2)实现数据共享
(3)减少数据冗余
(4)数据独立性
3.按数据模型特点分,数据库类型有
(1)网状型数据库
(2)层次性数据库
(3)关系型数据库
4.常见关系数据库
(1)Oracle
(2)DB2
(3)Sybase
(4)Microsoft SQL Server
(5)MySQL
5.MySQL字符集
character_set_client:客户端(MySQL命令窗口)的字符集(未加说明的是latin1字符集)
character_set_connection:连接层字符集
character_set_database:当前选中数据库的字符集
character_set_filesystem:MySQL服务器文件系统的字符集, 默认的字符集为binary
character_set_results:结果集的字符集
character_set_server:MySQL服务器的字符集
character_set_system:元数据(字段名、表名、数据库名等)字符集,默认的字符集为utf8
注意:要想不出现乱码,以下五个字符集必须一致:
character_set_client、character_set_connection、character_set_database、character_set_results、character_set_server
6.MySQL中的字符集转换过程
7.mysql的体系结构,也可以称之为mysql的工作原理:
1.连接层,提供连接协议,提供验证:用户名,密码、IP、socket,提供专用连接线程,接收用户sql,返回结果;通过show processlist命令可以查看连接线程基本情况;
2.sql层,①接收上层传过来的sql语句,②语法验证,③语义检查判断sql语句的类型,④权限检查,⑤解析器进行sql的预处理生成执行计划,⑥优化器对多种执行计划进行分析,选择最优的,⑦执行器,执行sql,将执行后的结构放入磁盘,⑧提供查询缓存,⑨提供日志记录
3.存储引擎层(类似文件系统)负责根据sql执行结果,从磁盘上拿数据,将16进制的磁盘数据,交由sql层结构化成表,由连接层的专用线程返回给表。
其中,查看MySQL服务实例支持的存储引擎用到的SQL命令是:
SHOW ENGINES;
8.InnoDB存储引擎的特点:
(1)支持外键(Foreign Key)
(2)支持事务(Transaction):如果某张表主要提供OLTP支持,需要执行大量的增、删、改操作(insert、delete、update语句),出于事务安全方面的考虑,InnoDB存储引擎是更好的选择。
(3)最新版本的MySQL已经开始支持全文检索。
MySQL5.7默认的默认的存储引擎是InnoDB。
9.MyISAM存储引擎的特点:
(1)MyISAM具有检查和修复表的大多数工具。
(2)MyISAM表可以被压缩
(3)MyISAM表最早支持全文索引
(4)但MyISAM表不支持事务
(5)但MyISAM表不支持外键(Foreign Key)
如果需要执行大量的select语句,出于性能方面的考虑,MyISAM存储引擎是更好的选择。