暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MySQL每日答题

原创 Root__Liu 2023-05-25
318

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行记录。

 


「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论