数据库系统概论
数据库核心术语
数据
数据是数据库中存储的基本对象,可以对数据做如下定义:描述事物的符号称为数据。
描述事物的符号多种多样,所以数据有多种表现形式。
数据的表现形式还不能完全地表达其内容,需要经过解释,数据和关于数据的解释是密不可分的,每一个数据都有它的意义,数据的解释指的是对数据含义的说明,数据的含义称为数据的语义,数据与其语义是不可分的。
数据库
数据库就是存放数据的仓库,只不过这个仓库是在计算机存储设备上,而且数据是按一定格式存放的。
数据是数据库中存储的基本对象,可以对数据做如下定义:描述事物的符号称为数据。
描述事物的符号多种多样,所以数据有多种表现形式。
数据的表现形式还不能完全地表达其内容,需要经过解释,数据和关于数据的解释是密不可分的,每一个数据都有它的意义,数据的解释指的是对数据含义的说明,数据的含义称为数据的语义,数据与其语义是不可分的。
数据库就是存放数据的仓库,只不过这个仓库是在计算机存储设备上,而且数据是按一定格式存放的。
复制是解决系统高可用的常见手段。其思路就是:不要把鸡蛋都放在一个篮子里。
复制解决的基本问题是让一台服务器的数据与其他服务器保持同步。一台主库的数据可以同步到多台备库上,备库本身也可以被配置成另外一台服务器的主库。主库和备库之 间可以有多种不同的组合方式。
MySQL 支持两种复制方式:基于行的复制和基于语句的复制。这两种方式都是通过在主库上记录 bin log、在备库重放日志的方式来实现异步的数据复制。这意味着:复制过程存在时延,这段时间内,主从数据可能不一致。
SELECT
* FROM
table_name;SELECT DISTINCT
column_name;SELECT * FROM information_schema.tables
WHERE table_schema = 'test' AND table_name = 'user';
EXISTS
- 先对外表进行循环查询,再将查询结果放入 EXISTS
的子查询中进行条件比较,确定外层查询数据是否保留;IN
- 先查询内表,将内表的查询结果作为条件,提供给外表查询语句进行比较;索引是个前提,其实选择与否还是要看表的大小。你可以将选择的标准理解为小表驱动大表。在这种方式下效率是最高的。
比如下面这样:
不同存储引擎对于锁的支持粒度是不同的,由于 InnoDB 是 Mysql 的默认存储引擎,所以本文以 InnoDB 对于锁的支持进行阐述。
大体来说,MySQL 可以分为 Server 层和存储引擎层两部分。
Server 层包括连接器、查询缓存、解析器、优化器、执行器等,涵盖 MySQL 的大多数核心服务功能,以及所有的内置函数(如日期、时间、数学和加密函数等),所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图等。
存储引擎层负责数据的存储和提取。其架构模式是插件式的,支持 InnoDB、MyISAM、Memory 等多个存储引擎。现在最常用的存储引擎是 InnoDB,它从 MySQL 5.5.5 版本开始成为了默认存储引擎。