网站首页
手机版

Mysql 面试实战系列(四)——快马扬鞭(mysql面试题经典)

更新时间:2024-08-08 22:20作者:小乐

路过时不要错过。错过一分,就可能错过一万、两万,就错过了一个好机会。如果您有什么好的建议或者疑问,请留言,我们一起讨论。

告诉我们如何进行sql优化

解释各个项目的含义

profile的含义及使用场景。

explain 中的索引问题。

(1)解释各项目的含义

id: 每个独立执行的操作的标志,表示操作对象的顺序。一般来说,值较大的先执行;

如果id值相同,则顺序是从上到下。

select_type:查询中每个select子句的类型。详细信息将于明天添加。

table:名称,正在操作的对象的名称,通常的表名称(或别名),但还有其他格式。

与partition:匹配的分区信息。

type:连接类型。具体说明将于明天添加。

possible_keys:列出可能使用的索引。

key:实际使用的索引。

key_len: 使用的索引键的平均长度(以字节为单位)。

ref:表示该行正在操作的对象的引用对象。它可能是const表示的常量,也可能来自其他表。

key指向的对象,比如驱动表的连接列。

rows: 估计每次需要扫描的行数。

Filtered:rows*filtered/100 表示这一步最终得到的行数(估计值)。

extra:重要的附加信息。详细信息将于明天添加。

(2) Profile的含义及使用场景。

Profile用于分析SQL性能的消耗分布。当explain无法解决慢SQL时,需要使用

profile 对sql进行更详细的分析,找出哪部分sql花费时间最多,并确认该sql

性能瓶颈。 (我用的不多,期待更好的答案)

(3)解释中的索引问题。

在Explain结果中,一般来说,应该尽量使用索引(类型为const、ref等,键列有值)而避免

无需使用全表扫描(类型明确为ALL)。例如,具有where条件和良好选择性的列需要建立索引。

驱动表的连接列也需要建立索引。从动表的连接列也可以与where条件列一起创建

联盟索引。当需要排序或分组时,还可以考虑建立索引来实现直接排序和汇总。

需要

2. 告诉我们您做了什么样的备份以及相关计划

备份计划

备份恢复时间

备份和恢复失败如何处理

原则:

mysqldump 是逻辑备份。添加--single-transaction 选项可实现一致的备份。后台流程

会话的事务隔离级别首先会被设置为RR(SET SESSION TRANSACTION ISOLATION LEVEL

REPEATABLE READ),然后显式启动事务(START TRANSACTION /*!40100 WITH CONSISTENT

SNAPSHOT */),这样可以保证事务中读取到的数据是事务的快照。然后把桌子放在桌子上

数据被读出。如果加上--master-data=1,则会在开头加上数据库读锁。

(FLUSH TABLES WITH READ LOCK),事务打开后,记录此时数据库的binlog位置(show

master状态),立即解锁,然后读取表数据。全部数据导入后,即可结束交易。

Xtrabackup:

xtrabackup是物理备份,直接复制表空间文件并不断扫描生成的重做日志并保存。

来。 innodb备份完成后,会进行一次flush引擎日志操作(旧版本有bug,

如果在5.6上不这样做,数据会丢失),确保所有重做日志都已放置(涉及事务的两阶段提交)

概念,因为xtrabackup不复制binlog,所以必须保证所有redo日志都放在磁盘上,否则

最后一组提交的交易数据可能会丢失)。这个时间点就是innodb完成备份的时间点。虽然数据文件

虽然不一致,但是通过这段时间的redo,数据文件可以达到一致性(恢复时做了什么)

感情)。然后,您需要使用读锁刷新表并从其他引擎(例如myisam)备份表。

备份完成后解锁。这样就形成了完美的热备。

后备方案:

这取决于图书馆的规模。一般来说,对于100G以内的库,可以考虑使用mysqldump,因为mysqldump

更加轻量灵活,备份时间选择在业务低峰时期,每天可以进行全量备份(mysqldump备份

生成的文件更小,压缩后更小)。

对于100G以上的库,可以考虑使用xtranbackup。备份速度明显比mysqldump快。一般来说

每周选择一次全量备份,其余的每天进行增量备份。备份时间为业务非高峰期。

备份恢复时间:

物理备份恢复快,逻辑备份恢复慢

备份与恢复失败如何处理:

首先,恢复前要做好充足的准备,避免恢复过程中出现错误。例如备份后的有效性检查,

权限检查、空间检查等,如果报错,根据错误提示进行相应调整。

3.500db,最快时间重启

您可以使用批量ssh工具pssh在需要重启的机器上执行重启命令。还可以使用salt(前提是客户端安装了salt)或者ansible(ansible只需要ssh登录)等多线程工具来同时操作多台服务器。

4、innodb读写参数优化

读取参数、全局缓冲池和本地缓冲区

写入参数

IO相关参数

缓存参数及缓存适用场景

(1)读取参数、全局缓冲池和本地缓冲区

全局缓冲区:

Innodb_buffer_pool_size

innodb_log_buffer_size

innodb_additional_mem_pool_size

local buffer(以下都是server层的session变量,不是innodb):

读取缓冲区大小

连接缓冲区大小

排序缓冲区大小

键缓冲区大小

Binlog_cache_size

(2)写入参数

insert_buffer_size资源由www.eimhe.com美禾学习在线合集提供

innodb_double_write

innodb_write_io_thread

innodb_flush_method

(3)IO相关参数

同步_binlog

Innodb_flush_log_at_trx_commit

Innodb_lru_scan_深度

Innodb_io_capacity

Innodb_io_capacity_max

innodb_log_buffer_size

innodb_max_dirty_pages_pct

(4)缓存参数及缓存适用场景

你的意思是查询缓存吗?用于多读少写,比如分析报告等。

查询缓存大小

查询缓存类型

查询缓存限制

最大查询缓存大小

如果对你有帮助的话请给我点个赞

为您推荐

美景之屋@#好剧推荐

美景之屋(2)。男人一把将女人推到墙上壁咚,迫不及待的解开她的扣子,却不想隔墙有耳。这一幕被门外的小美看到了。小美是房地产公司的新职员,屋里跟客户偷情的女人是她的前辈阿瑟。小美怎么也想不到,自己只是想偷偷学习经验,却撞见了这么大一个秘密。小

2024-08-08 22:21

敏感时刻实施美式教育效果尴尬,全面倒向美国,俄罗斯更生气,美式教育的英文

泽连斯卡雅,作为乌克兰总统泽连斯基的妻子,最近提议在乌克兰推广美式幸福教育,强调教育内容将充分考虑乌克兰的实际情况进行改编。她认为这种教育有助于孩子们的成长,尤其是在人际关系、生活技能、道德意识、情商等方面的培养。尽管这种提议本身并无不可接

2024-08-08 22:20

在家上学!让人大吃一惊的美式教育方式

每年这个时候,应该是孩子们重返校园,开始新学期school day的日子。今年的天公不作美,暴风雪在美国东北部肆虐,很多学校不得已推迟了上课的时间。闲置在家,孩子们无事可做,所有的注意力都瞄向了户外,开始在雪地上撒开脚丫子狂欢。“尽情玩耍吧

2024-08-08 22:19

中式教育和美式教育的三点区别#成长教育(中式教育和美式教育的区别英语作文)

中国人与美国人养娃的区别。中国的教育就是学,美国的教育就是玩。大错特错。第一个区别:10岁以下是探索期,在探索期。好奇心:美国教育是保护孩子的好奇心。[兴趣热爱:使孩子充满对大自然。兴趣的热爱,注重结果。中国教育比较注重结果,10岁必须到几

2024-08-08 22:19

真实的美国家庭如何教育子女?这四种美式教育了解下(美国父母教育方式)

如今,许多年轻家长在教育孩子时总是小心翼翼,他们常常会结合各类育儿专家给出的建议,来不断调整自己的教育方式。不同的孩子会有其不一样的性格和特点,但有许多方面都是共通的。 那么,你想知道真实的美国家庭都是怎样教育自己孩子的吗?美国教育专家黛安

2024-08-08 22:18

全面守护孩童的上学路 福田欧辉这款“宝藏校车”来了

抛下那些所谓不能输的“起跑线”焦虑,我们最应该为孩子做的,难道不是守护他们平安健康地成长吗 2021年4月10日,福田欧辉新一代健康校车BJ6996、BJ6766亮相湖南长沙,两款全新升级、更安全、更健康的“宝藏校车”,将全面守护孩童的上学

2024-08-08 22:18

加载中...