MySQL运维面试题详解
-
ACID属性:ACID是原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)的缩写,是数据库事务处理的重要特性。ACID属性确保数据的一致性和完整性。
-
数据库规范化:规范化减少数据冗余和提升一致性。常见级别包括第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、BCNF(博科斯范式)和第四范式(4NF)。
-
MyISAM与InnoDB存储引擎:MyISAM不支持事务,适合读多写少的场景,空间小但并发性能差;InnoDB支持事务和行级锁定,适合高并发事务处理,但占用空间较大。
-
水平分区(Sharding):通过数据在多个数据库实例上的分布实现水平扩展。优点是扩展性强,但数据管理和查询复杂性增加。
-
读写分离:主从复制配置将读操作分散到从服务器,提高系统性能。优势在于读取速度更快,主服务器压力减小,但存在数据延迟的风险。
-
NoSQL与MySQL选择:数据结构不固定或对高并发读取要求高时可选NoSQL(如MongoDB);需要事务处理和复杂查询时,MySQL更适合。
-
性能优化:常见瓶颈包括查询效率低、索引不足和内存不足。方法有优化SQL、创建合适索引、调整参数配置和合理硬件分配。
-
EXPLAIN命令:帮助分析SQL查询执行计划,优化索引使用,提高查询速度。
-
数据库索引:索引加速查找。聚集索引键值与数据在同位置,非聚集索引键值指向数据物理位置;聚集索引在主键上唯一。
-
数据加密:MySQL支持透明数据加密(TDE)和行级加密,确保敏感数据安全,防止未经授权的访问。
-
主从复制和高可用性:主从复制确保数据从主节点实时同步到从节点,形成高可用架构;主节点故障时,从节点可接管。
-
SQL优化建议:建议使用适当的索引、减少数据扫描范围、避免不必要的复杂联表操作、使用缓存等方法提升查询效率。
-
锁机制:MySQL中的锁机制包括表锁、行锁和共享锁。InnoDB引擎常用行锁,适合高并发场景。
-
日志管理:MySQL的二进制日志(binlog)记录数据变更,是实现数据恢复和主从复制的关键。
-
备份与恢复:备份MySQL可通过物理备份和逻辑备份,恢复则根据备份类型而定,可使用增量恢复和完全恢复方式。
-
慢查询日志:分析慢查询日志可识别SQL瓶颈,适当调整索引和SQL结构可提升性能。
-
高可用架构设计:常见高可用方案有主从复制、MHA(Master High Availability)、PXC(Percona XtraDB Cluster)等。
-
监控与报警:建议搭建监控系统如Prometheus+Grafana,实现实时监控数据库状态和性能。
-
数据迁移:数据迁移工具如pt-archiver、mysqldump等,在迁移过程中应注意性能和数据完整性。
-
安全策略:MySQL安全策略包括账号管理、权限分配、密码策略、数据加密、审计日志等。