数据库优化思路
2022-04-30 13:28:13 0 举报
上千万数据优化思路
作者其他创作
大纲/内容
分库分表后存在的问题
1.分库分表后,数据可能分布在不同的节点,关联查询和多维度查询麻烦,不同维度查看数据,利用的partitionkey是不一样的
软优化:1.数据库参数优化2.分析慢查询sql语句,分析执行计划,进行sql改写和程序改写3.优化数据库索引4.优化数据库表结构5.引入NoSql和程序架构调整(比如缓存、读写分离、索引优化)硬优化:提升系统硬件,内存、带宽、cpu、硬盘等
2.分布式事务问题
1.数据库自增id,设置不同的自增步长2.UUID3.redis发号器4.snowflake雪花算法(最常用的)
分库分表:分表:解决单表数据量大,查询慢问题分库:数据库并发访问压力大,受数据IO性能的限制
水平分库分表策略,Range:1.自增id范围2.年月日范围3.省份、区域(华东、华南、华北)Hash取模(常用方法),因为要考虑二次扩容问题,比如电商从订单号入手,订单号头位1代表库编号,尾数代表表编号。使用加权库表位算法,解决扩容后数据倾斜不均匀问题。
3.执行sql排序、翻页、函数计算问题
1rpc+seata分布式事务框架2.使用mq,实现最终一致
垂直分表原则:1.把不常用的字段单独放在一张表;2.把text、blob等大字段拆分出来,放在附表中3.业务经常组合查询的列放在一张表
4.数据库全局主键重复问题
分库分表问题解决方案
5.容量规划.,分库分表后二次扩容问题
场景面试题:有个数据库,单表1千万数据,未来1年还会增长多500万,性能比较慢,说一下你的优化思路
1.字段解析配置2.Nosql方案:订单冗余存储一份在es上3.冗余双写方案,分买家库和卖家库
0 条评论
回复 删除
下一页