暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
MySQL面试题目及解答.docx
78
2页
5次
2024-03-07
免费下载
题目
1.mysql
备份会不会导致锁等待,为什么,怎么解决或避免?
xtrabackup
会,它在备份时会产生短暂的全局读锁
FTWL(ush table with read lock)
frm/MYD/MYI
,以
binlog
。如
MyISAM
数据
大,则拷贝时间就越长,加锁的时间也越长
mysqldump
有可能会。如果只是添加
--single-transacton
选项用于保证备份数据一
性,这时就不会产生
FTWL
锁了。但通常我们为了让备份文件和
binlog
保持一致,通常
也会设置
--master-data
选项用于获得当前
binlog
信息,这种情况也会短暂加锁
数据量特别大的话,建议优先用
xtrabackup
,提高备份
/
恢复速度。而如果数据量不
是太大或者想备份单表,则建议用
mysqldump
了,方便逻辑恢复。各有利弊,注意其
适用场景
题目
2.mysql
同步原理,怎么搭建数据库同步?
有个
bin-log
制文了所
sql
,我就是
库的
bin-log
文件的
sql
语句复制过来,让其在从数据的
relay-log
重做日志文件中再执行
一次这些
sql
语句即可。
目的:
实施灾备,故障切换
读写分离
备份、避免数据丢失
条件:
主库开启
binlog
日志
主从服务器
server-id
不同
从库服务器能连通主库
方式:
同步复制
同步复制,意思是
master
的变化,必须等待
slave-1.slave-2....slave-n
完成后才能返
回。这样,显然不可取,也不是
MYSQL
复制的默认设置。比如,在
WEB
前端页面上
用户增加了条记录,需要等待很长时间。
异步复制
如同
AJAX
请求一样
master
只需要完成自己的数据库操作即可。至
slaves
是否
收到二进制日志,是否完成操作,不用关心
MYSQL
的默认设置。
半同步复制
master
只保
slaves
中的一个操作成功,就返回,其他
slave
不管(这个功能是
google
MYSQL
引入的)。
原理步骤:
步骤一:主库
db
的更新事件
(update
insert
delete)
被写到
binlog
步骤二:从库发起连接,连接到主库
步骤三:此时主库创建一个
binlog dump thread
线程,把
binlog
的内容发送到从库
:从后,
I/O
线,读过来
binlog
写入
relay log.
骤五还会一个
SQL
线程,
relay log
面读内容
Exec_Master_Log_Pos
位置开始执行读取到的更新事件,将更新内容写入到
slave
db.
题目
3.tdsql
慢查询的一些优化
1.
引优化:
表中添加适的引可以显以通
EXPLAIN
判断是否使用了引,如果使引,就需要考虑添加引。
2.
避免全表扫描
:
避免在大表上进行全表扫描,可以通过制查询条件或者使用分页查询来解决。
3.
优化查询语句
:
优化查询语句可以通过使适的
JOIN
查询或者优化
WHERE
条件来提查询效率
4.
数据库表结构优化:
可以通过分大表、归档历史数据等方式优化表结构,提查询效率
of 2
免费下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。