当前位置:首页 > 问答 > 正文

数据库优化|高并发处理|mysql分表分库常见面试题及解答

数据库优化

  • 索引优化:合理使用B+树索引,避免全表扫描;联合索引遵循最左匹配原则。
  • SQL调优:避免SELECT *,优化JOIN操作;使用EXPLAIN分析执行计划。
  • 配置调整:调整innodb_buffer_pool_size(建议占内存70%-80%);优化查询缓存。
  • 表设计:选择合适的数据类型;避免大字段;适度范式化与反范式化。

高并发处理

  • 读写分离:主库写,从库读,减轻单库压力。
  • 缓存策略:Redis缓存热点数据,减少数据库访问。
  • 连接池:使用Druid等连接池管理数据库连接,避免频繁创建/销毁。
  • 限流降级:通过熔断机制(如Hystrix)或消息队列削峰填谷。

MySQL分表分库常见面试题及解答

  1. 何时需要分表分库?

    单表数据量超千万级;读写性能明显下降。

    数据库优化|高并发处理|mysql分表分库常见面试题及解答

  2. 水平分表 vs 垂直分表?
    • 水平分表:按行拆分(如按用户ID哈希)。
    • 垂直分表:按列拆分(冷热数据分离)。
  3. 分库分表后如何解决跨库JOIN?

    冗余字段;业务层聚合;使用全局表(广播表)。

    数据库优化|高并发处理|mysql分表分库常见面试题及解答

  4. 分布式ID生成方案?

    雪花算法(Snowflake);数据库自增ID步长;UUID(无序性需权衡)。

    数据库优化|高并发处理|mysql分表分库常见面试题及解答

  5. 分库分表中间件?
    • ShardingSphere、MyCat(基于代理或客户端分片)。
      基于2025年行业常见实践及面试考点整理。

发表评论