1、下面哪些操作可以提升MySQL主实例的查询性能? AD
A、将sort_buffer_size从1M改成4M
B、将rpl_sync_master_enabled从1改成0
C、将innodb_flush_log_at_trx_commit从1改成2
D、将innodb_buffer_pool_size从10G改成12G
2、SQL如何创建一个表? A
A、CREATE TABLE table1 (c1 datatype,c2 datatyp);
B、CREATE DataTABLE table1 (c1 datatype,c2 datatyp);
C、CREATE MyTABLE table1 (c1 datatype,c2 datatyp);
D、CREATE SQLTABLE table1 (c1 datatype,c2 datatyp);
3、InnoDB逻辑存储单元主要分为表空间、段、区和页。层级关系为? C
A、tablespace -> extent-> segment -> page
B、tablespace -> page-> extent -> segment
C、tablespace -> segment -> extent -> page
D、tablespace -> segment ->page -> extent
InnoDB逻辑存储结构分为表空间(Tablespace)、段(Segment)、区(Extent)、页Page)以及行(row)
1. 表空间(Tablespace)
InnoDB提供了两种表空间存储数据的方式,一种是共享表空间,一种是独占表空间。 InnoDB 默认会将其所有的表数据存储在一个共享表空间中,即ibdata1。
我们可以通过设置innodb_file_per_table参数为1(1代表独占方式)开启独占表空间模式。开启之后,每个表都有自己独立的表空间物理文件,所有的数据以及索引都会存储在该文件中,这样方便备份以及恢复数据。
2. 段(Segment)
表空间是由各个段组成的,段一般分为数据段、索引段和回滚段等。InnoDB默认是基于B+树实现的数据存储。
这里的索引段则是指的B+树的非叶子节点,而数据段则是B+树的叶子节点。而回滚段则指的是回滚数据,事务隔离的MVCC利用了回滚段实现了多版本查询数据。
3. 区(Extent) / 页(Page)
区是表空间的单元结构,每个区的大小为1MB。而页是组成区的最小单元,页也是InnoDB存储引擎磁盘管理的最小单元,每个页的大小默认为16KB。为了保证页的连续性,InnoDB存储引擎每次从磁盘申请4-5个区。
4. 行(Row)
InnoDB存储引擎是面向列的(row-oriented),也就是说数据是按行进行存放的,每个页存放的行记录也是有硬性定义的,最多允许存放16KB/2-200行,即7992行记录。




