赞
踩
目录
是把数据库的逻辑结构和物理结构和用户关联起来,任何一个用户必须有自己默认表空间,任何一个表空间在创建的时候必须指定至少一个文件。在MySQL中一个表空间就是一个文件。
服务器:也是计算机的一种,它的运行比普通的计算机要快,负载更高、价格也就比较昂贵(根据品牌、所需性能,配置衡量价格)。server在网络中为其它客户机(如PC机、智能手机等甚至各种系统的大型设备)提供计算或者应用服务。server它具有高速的CPU运算能力、具有长时间的可靠运行和强大的I/O外部数据吞吐能力以及具有更好的扩展性。服务器作为电子设备,其内部的结构也是极为复杂,与普通的计算机相比较结构相差不大,它的特点:易管理、可扩展、运算性能高、易使用。它的主要硬件是:处理器、硬盘、内存、芯片组、I/O(RAID卡、网卡、HBA卡)、机箱(电源、风扇)。系统组成。根据性能的不同又分了几类。感兴趣的自己去了解。
是一个MySQLD的数据库服务器进程、与”主机“(host)是有区别的、是一个多线程的单进程、管理磁盘和内存的数据文件以及用户对其数据的访问、支持多个存储引擎(每个用户或表空间可以存储多张表、每张表可以使用不同的存储引擎,这个存储引擎与表关联。)同时支持事务性的表和非事务性的表(事务性表:就是可以进行transaction的事务回滚操作、支持行级锁定。非事务性表:不支持事务的表、就是使用myisam的存储引擎的表、不支持回滚、支持表级锁定)。
服务器:具有版本号和功能的软件程序(MySQLD的进程)此服务器非彼服务器。
主机:运行服务器程序的物理机,由硬件配置(CUP,内存,主板,磁盘、箱体等)、只有硬件就是一个死物,怎么让它活起来呢!系统,有了系统它就有思想,有了控制权,控制管理、协调它们高效的运行。多个”服务器“可以运行在同一个主机上。
服务器(mysqld):由三层组成。连接层、SQL层、存储层(磁盘、内存、网络)
连接层:通讯协议(TCP/IP、socket file、shared memmory、named pipes)、线程、验证。
SQL层:解析器、授权、优化程序、查询执行、查询日志记录(可选)
存储层:磁盘、内存、网络,数据的存储介质,如何管理数据存储
innoDB时MySQL默认的存储引擎,MySQL包含的其他引擎:myISam、memory、ARCHIVE、blackhole、merge、csv、federated(默认是被禁用的)还提供第三方存储引擎可用。
存储引擎就是充当不同类型的处理程 序的服务器组件(存储引擎可以保存在磁盘,支持磁盘,也可以保存在内存)、MySQL将处理数据行的任务委托给这些存储引擎,这些存储引擎将数据存储在磁盘、内存中,或者将数据发送到网络上的其他组件,提供索引和其他优化,在创建表时,可以根据业务的需要来指定存储引擎管理数据(存储引擎和表关联的),表的存储引擎通常是不会影响SQL层的操作,(SQL层通常解析所有有效的SQL,存储层处理操作,SQL语句是独立于存储引擎,除了特定的在语句如:GREATE TABLE 中有一个ENGINE的选项,指定每张表使用那个存储引擎和ALTER TABLE 中有一个ENGINE的选项,可以将表转换使用不同的存储引擎)某些功能之在某些存储引擎中有,如仅innoDB和NDB支持外键和事务控制操作如(commitHE rollback)只有innoDB和myisam存储引擎支持全文索引。
主外键的关系:为了避免数据冗余,符合满足数据库的第三规范设计的,一张表的主键作为另一张表的外键来使用,反之一张表的外键一定是另一张表的主键,主键的这个表叫父表,外键的表叫子表。
依赖于存储引擎的功能:存储介质、事务处理能力、锁定、备份和恢复、优化、外键的引用完整性、全文本搜索、空间数据、
元数据:数据库定义的数据,是有关存储RDBMS(关系行数据库管理系统)中的数据的信息
元数据的类型:表的定义、存储过程定义、ACL(访问控制列表)、视图定义、方案对象定义
CREATE TABLE(创建一个表);CREATE PROCEDURE(创建一个存储过程)在数据字典生成新的信息。
数据字典:是保存关系行数据的元数据集中资料档案库。(位置:/var/lib/mysql下的ibdata1(innoDB系统表空间))
事务数据字典的特征:对所有MySQL服务器的子系统单个的元数据档案中保存,统一管理(所有存储引擎都有自己的用户表,但它们的所有元数据都存储在相同的数据字典表中,这些表都保存在innoDB的数据字典的表空间中),基于标准SQL定义,更易于扩展:公共数据字典,可以使用安装程序自动升级,易于管理,由于使用innoDB的存储引擎支持原子的DDL(单一的原子性来执行),损毁安全(支持实例恢复,当服务器不能正常运行时关机了,没有提交了没有写入的数据会在服务器下次启动后进行回退重新写入,保证数据安全不丢失数据);事务性的存储引擎能改善INFORMATION_SCHEMA(视图定义),使用标准优化技术获得更好的性能,更易于维护。
数据字典的序列化:每次元数据发生更改时,MySQL都会创建它的副本,元数据以JSON格式序列化,被称为SDI(串行词典信息)它的这个副本所在位置(innoDB:在innoDB用户表空间中连同数据存储;MyISAM:作为数据库目录中的.sdi文件)。
是把数据库的逻辑结构和物理结构和用户关联起来,任何一个用户必须有自己默认表空间,任何一个表空间在创建的时候必须指定至少一个文件。在MySQL中一个表空间就是一个文件。
innoDB表空间:就是数据文件,这个文件可以存储一个或多个innoDB表以及与其关联的索引。在系统表空间中存储元数据和缓冲区,主要包括:innoDB数据字典(表、索引和列元数据)、更改缓冲区(主要对二级索引页面的更改)、双写缓冲(两个缓冲区交替写入,确保崩溃安全写入,避免用户提交的数据丢失)。它是一个单一的逻辑存储区,包含数据目录中的一个或多个文件,一般名为ibdata1,ibdata2等可以根据需要创建多个(注:只有最后一个是可扩展的,需要多少就扩展多少,前面的都需要固定大小)。
innoDB使用的表空间类型:数据表空间(系统表空间、单表文件表空间(一个文件只能放一张表,属于某一个数据库的,以.ibd结尾命名)、通用表空间(一个表空间可以放多个表的数据,不属于任何特定的数据库,以.ibd结尾文件命名))、还原(undo)表空间、临时表空间(在MySQL中保存临时表和临时对象);
单表文件表空间:表压缩:不能在同一个通用或系统表空间中混合压缩和为解压的表
空间回收(使用TRUNCATE):innoDB删除并重新创建截断的单表文件表空 间,将可用的空间释放会文件系统。
通用表空间:删除大量数据的语句的文件系统开销更少如(DROP TABLE 或 TRUNCATE TABLE)负载少。
消耗更少的内存来存储表空间元数据。
注:在数据中可以混合使用表空间的类型,一些表使用单表文件表空间,一些表使用通用表空 间,多个通用表空间共存。
重做(redo)日志作用以其的位置
在innoDB进项更改执行操作数据文件进行之前存储
还原(restore)日志作用以其位置
存储,将要被事务修改的数据,在修改之前的数据副本,以便innoDB可以访问更早期的数据,也称为回滚段(rollback segments)
MySQL服务器将内存分配为三种不同的类别:服务器/共享、存储引擎/共享、连接/会话
服务器/共享又包含:线程缓存和主机缓存;存储引擎/共享又包含:缓冲池和日志缓冲池;连接/会话又包含:排序缓冲区、连接缓冲区和临时表。
又有全局内存和会话内存
缓冲池以及配置缓冲池
缓冲池:为了避免每次访问磁盘,以加速数据的访问,避免每次查询数据都要进行IO,存放这缓存表数据与索引数据,把磁盘上的数据加载到缓冲池,起到加速访问的作用。既然数据放在缓冲池里访问速度快那为什么不把所有的数据都放在缓冲池里,所有的事情都没有十全十美的既然它的访问速度快了容量也就成为了它的短板,所以缓冲池了的文件都是经常用到的,常用的放在最近的地方以最大程度的提到了访问速度,也降低了对磁盘IO的运行。
配置缓冲池:尽可能将最多的RAM分配给缓冲池,以避免热数据对磁盘进行I/O
设置inndb_buffer_pool_size的之,使用70%——80%的内存,根据计算机操作系统和管理程序使用的RAM,将剩余的内存分配给缓冲池。启用多个缓冲池以最大程度的减少互斥量的争用。当总缓冲池大小,大于1GB时,innoDB会自动分配八个缓冲池实例,设置innodb_buffer_pool_instatces以便每个实例至少使用1GB.
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。