Advertisement

数据库优化问题——分库分表

阅读量:

数据库性能问题

原因

大量请求阻塞

当系统处于高并发场景时

SQL操作变慢

如果一个数据库包含超过一亿条数据。
一条SQL语句未被索引优化导致整个表都被扫描。
这样的查询执行时间将显著延长。

存储出现问题

业务量剧增,单库数据量越来越大,给存储造成巨大压力。

优化方案

硬件

复制代码
* 增加机器性能

软件

SQL调优

优化目标:通过改进技术或参数设置等手段使运行缓慢的SQL指令加快执行速度;同时尽量利用索引加快执行速度;若未利用索引可能导致全表扫描(即全表扫描),这将导致整体性能下降。

开启慢 SQL 记录

如果你在使用MySQL...

调优的工具

经常使用「explain」命令来了解SQL语句执行路径;通过分析运行结果能够快速判断该SQL语句是否进行全表扫描以及是否有索引被使用。

该列名为"type",其可能取值包括:ALL、键值索引、范围号、引用号(等效引用号)、常量号、系统号和NULL(按性能优劣排序自左至右)

表结构优化

数据库表冗余字段

在 "user" 表中包含 user_id 和 nickname 等字段,在 "order" 表中也包含 order_id 和 user_id 等字段。要如何获取用户的昵称呢?通常的做法是通过关联 join 操作实现,在查询订单信息时结合用户信息以获得用户的昵称。

全部评论 (0)

还没有任何评论哟~