前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL DBA基本面试题总结--Java学习网

MySQL DBA基本面试题总结--Java学习网

作者头像
用户1289394
发布2021-07-09 11:58:26
4190
发布2021-07-09 11:58:26
举报
文章被收录于专栏:Java学习网

一.基础知识

1.MYSQL逻辑上可以分为多少层?

SQL层:查询的解析,优化,执行

存储引擎:数据存储,锁,事务管理,恢复

2.存储引擎最常用有那些?简单的描述下

MyISAM:默认的MySQL插件式存储引擎,它是在Web、数据仓储和其他应用环境下最常使用的存储引擎之一。

InnoDB:用于事务处理应用程序,具有众多特性,包括ACID事务支持。

BDB:可替代InnoDB的事务引擎,支持COMMIT、ROLLBACK和其他事务特性。

Memory:将所有数据保存在RAM中,在需要快速查找引用和其他类似数据的环境下,可提供极快的访问。

Merge:允许MySQLDBA或开发人员将一系列等同的MyISAM表以逻辑方式组合在一起,并作为1个对象引用它们。

Archive:为大量很少引用的历史、归档、或安全审计信息的存储和检索提供了完美的解决方案。

Federated:能够将多个分离的MySQL服务器链接起来,从多个物理服务器创建一个逻辑数据库。十分适合于分布式环境或数据集市环境。

Cluster/NDB:MySQL的簇式数据库引擎,尤其适合于具有高性能查找要求的应用程序。

3,简述在MYSQL数据系统里最常见的系统瓶项有那些?

A.磁盘搜索。

B.磁盘读/写

C.CPU周期

4.内存带宽

备注:

磁盘搜索。需要花时间从磁盘上找到一个数据,用在现代磁盘的平均时间通常小于10ms,因此理论上我们能够每秒大约搜索1000次。这个时间在新磁盘上提高不大并且很难为一个表进行优化。优化它的方法是将数据分布在多个磁盘上。

磁盘读/写。当磁盘放入正确位置后,我们需要从中读取数据。对于现代的磁盘,一个磁盘至少传输10-20Mb/s的吞吐。这比搜索要容易优化,因为你能从多个磁盘并行地读。

CPU周期。我们将数据读入内存后,需要对它进行处理以获得我们需要的结果。表相对于内存较小是最常见的限制因素。但是对于小表,速度通常不成问题。

内存带宽。当CPU需要的数据超出CPU缓存时,主缓存带宽就成为内存的一个瓶颈。这在大多数系统正是一个不常见的瓶颈但是你应该知道它

4.MYSQL的备份有多少种,请简要的描述:

A.直接拷贝数据文件到安全地方进行保存

B.使用MYSQLHOSTCOPY备分数据

C.使用MYSQLDUMP备份数据

D.使用MYSQL的同步复制,实现数据实时数据同步备份

5.MYSQL CLUSTER 的环境主要由那三部份组成的?

A.管理各个节点的MANAGE节点主机

B.SQL层的SQL服务器节点

C.STORAGE层的NDB数据节点。

二.综合题

1. 为什么要对MYSQL的表进行分区

A.与单个磁盘或文件系统分区相比,可以存储更多的数据

B. 对于那些已经失去保存意义的数据,通常可以通过删除与那些数据有关的分区,很容易地删除那些数据。相反地,在某些情况下,添加新数据的过程又可以通过为那些新数据专门增加一个新的分区,来很方便地实现。

C. 一些查询可以得到极大的优化

D. 涉及到例如SUM()和COUNT()这样聚合函数的查询,可以很容易地进行并行处理

E. 通过跨多个磁盘来分散数据查询,来获得更大的查询吞吐量

2. 简述MYSQL的常用的优化工具或监控工具有那些?

Mysqlreport,mysqlsla

Iostat ,vmstat,top

3. .优化INNODB性能会考虑那几方面?

A基础设施:硬件,CPU,内存,磁盘等

B操作系统;OS是基于LINUX还是WINDOS同,及32位还是64位

C.MYSQL的INNODB的设置,如:innodb_buffer_pool_size,innodb_log_file_size,innodb_log_buffer_size,innodb_flush_log_at_trx_commit,innodb_thread_concurrency,等

D.生产应用

E.标准的SQL编写

4. Mysql用户与权限管理:

A)开放DBA用户管理MySQL中具体数据库(testdb)的权限;

grant all privileges on testdb todba1@’192.168.0.10′identified by “dbapasswd”;

B)开放user用户管理MySQL中具体数据库的表(testdb.table1)的权限

grant all on testdb.teable1 touser@’192.168.0.10′identified by “dbapasswd”;

C)开放user用户管理MySQL中具体数据库的表(testdb.table1)的部分列的权限

grant select(id, se, rank) on testdb.table1to user@’192.168.0.10′identified by “dbapasswd”;

5. 写出INNODB存储引擎的基于二进制时间点的备份与恢复,mysql的安装目录为:/usr/local/mysql,数据库名为:db

全备份:/usr/local/mysql/bin/mysqldump –single-transaction–flush-logs –master-data=2 -u root -p*** db1>full_0625.sql

增量备份:用 flush logs 来生成数据库增量备份(二进制日志文件)

mysqladmin -u root -p*** flush-logs

每隔一段时间执行此步骤,来生成增量备份文件,例如,每半小时或者每15分钟。

恢复:

第一种恢复

首先:

/usr/local/mysql/bin/mysq -u root -p db1<full_0625.sql

然后:

mysqlbinlog mysql-bin.000002 | mysql

mysqlbinlog mysql-bin.000003 | mysql

mysqlbinlog mysql-bin.000004 | mysql

mysqlbinlog mysql-bin.000005 | mysql

第二种恢复

1. /usr/local/mysql/bin/mysq -u root -p db1<full_0625.sql

2. 使用MySQL工具 mysqlbinlog 来把增量备份产生的二进制文件转化为 SQL 文本文件

mysqlbinlog -u root -p*** mysql-bin.000002 >mysql-bin.000002.sql

3. 依次使用 MySQL 数据库增量备文件,来恢复数据库

mysql -uroot -p***<mysql-bin.000001.sql

mysql -uroot -p***<mysql-bin.000002.sql

mysql -uroot -p***<mysql-bin.000003.sql

mysql -uroot -p***<mysql-bin.000004.sql

mysql -uroot -p***<mysql-bin.000005.sql

6. 获取MYSQL锁的等待情况可以通过检查那个变量来了解表的争夺

table_locks_waited,table_locks_immediate

7. 请写出MYSQL常用自带工具的五种?

Mysql,mysqladmin, mysqldump,mysqlhotcopy,mysqldumpslow

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-06-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Java学习网 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档