随着业务规模的不断扩大,需要选择合适的方案去应对数据规模的增长,以应对逐渐增长的访问压力和数据量。

关于数据库的扩展主要包括:业务拆分、主从复制,数据库分库与分表。

(1)业务拆分

假设:Mysql一个数据库中有三张表,shop表,goods表,history表。

随着业务逐渐复杂,数据逐渐增多。数据库的执行效率越来越低。

此时可以将三张表放到三个不同主机上人不同数据库中,这样对一个数据库人压力就分成了三份,系统的吞吐量就会大大提高。

(2)主从复制

MySQL的Replication是一个多MySQL数据库做主从同步的方案,特点是异步复制,广泛用在各种对MySQL有更高性能、更高可靠性要求的场合。

MySQL Replication 就是从服务器拉取主服务器上的 二进制日志文件,然后再将日志文件解析成相应的SQL语句在从服务器上重新执行一遍主服务器的操作,通过这种方式来保证数据的一致性。

特点:

  • 主从间的数据库不是实时同步,就算网络连接正常,也存在瞬间主从数据不一致的情况。

  • 如果主从的网络断开,则从库会在网络恢复正常后,批量进行同步。

  • 如果对从库进行修改数据,那么如果此时从库正在在执行主库的bin-log时,则会出现错误而停止同步,所以一般情况下,我们要非常小心的修改从库上的数据。

  • 一个衍生的配置是双主、互为主从配置,只要双方的修改不冲突,则可以工作良好。

  • 如果需要多主库的话,可以用环形配置,这样任意一个节点的修改都可以同步到所有节点。

(3)数据库分表、分区、分库

分表实现策略:分表就是将一个表分成多个表,比如有一个用户表,因为用户无限制地增长严重影响性能。假设有1000万条数据,可以每10万条数据建一个表,根据ID判断属于哪个表。

分区实现策略:分区是把存放数据的文件分成许多小块,分区后人表还是一张表,可以突破磁盘的读写能力。

分区的适用场景:

1.一张表的查询速度很慢

2.表中的数据可以分段

3.每次只是操作数据人一小部分,而不是全部

CREATE TABLE sales (id INT AUTO_INCREMENT,amount DOUBLE NOT NULL,order_day DATETIME NOT NULL,PRIMARY KEY(id, order_day)
) ENGINE=Innodb
PARTITION BY RANGE(YEAR(order_day)) (PARTITION p_2010 VALUES LESS THAN (2010),PARTITION p_2011 VALUES LESS THAN (2011),PARTITION p_2012 VALUES LESS THAN (2012),
PARTITION p_catchall VALUES LESS THAN MAXVALUE);

分库实现策略:对数据库进行拆分,从而提高数据库的写入能力。

简单的分库就是把表分别存储在不同人数据库中

Mysql大数据优化方案相关推荐

  1. 史上最全MySQL 大表优化方案(长文)

    转载自  史上最全MySQL 大表优化方案(长文) 当MySQL单表记录数过大时,增删改查性能都会急剧下降,可以参考以下步骤来优化: 一.单表优化 除非单表数据未来会一直不断上涨,否则不要一开始就考虑 ...

  2. MySQL 大表优化方案(1)

    转载自  干货!!!MySQL 大表优化方案(1) 当MySQL单表记录数过大时,增删改查性能都会急剧下降,可以参考以下步骤来优化: 单表优化 除非单表数据未来会一直不断上涨,否则不要一开始就考虑拆分 ...

  3. 三种 MySQL 大表优化方案

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 来源 | yq.aliyun.com/articles/6 ...

  4. MySQL 大表优化方案

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 来源:manong sf.gg/a/119000000615818 ...

  5. 总结三种 MySQL 大表优化方案

    来源 | yq.aliyun.com/articles/690978 问题概述 使用阿里云rds for MySQL数据库(就是MySQL5.6版本),有个用户上网记录表6个月的数据量近2000万,保 ...

  6. MySQL 大表优化方案,收藏了细看!

    当 MySQL 单表记录数过大时,增删改查性能都会急剧下降,可以参考以下步骤来优化. 单表优化 除非单表数据未来会一直不断上涨,否则不要一开始就考虑拆分,拆分会带来逻辑.部署.运维的各种复杂度,一般以 ...

  7. Mysql学习总结(47)——MySQL大表优化方案

    当MySQL单表记录数过大时,增删改查性能都会急剧下降,可以参考以下步骤来优化: 单表优化 除非单表数据未来会一直不断上涨,否则不要一开始就考虑拆分,拆分会带来逻辑.部署.运维的各种复杂度,一般以整型 ...

  8. 最详细的MySQL大表优化方案

    背景 阿里云RDS FOR MySQL(MySQL5.7版本)数据库业务表每月新增数据量超过千万,随着数据量持续增加,我们业务出现大表慢查询,在业务高峰期主业务表的慢查询需要几十秒严重影响业务 方案概 ...

  9. MySQL大表优化方案(推荐一)

    当MySQL单表记录数过大时,增删改查性能都会急剧下降,可以参考以下步骤来优化: 单表优化 除非单表数据未来会一直不断上涨,否则不要一开始就考虑拆分,拆分会带来逻辑.部署.运维的各种复杂度,一般以整型 ...

  10. 三种MySQL大表优化方案,过目不忘!

    问题概述 使用阿里云rds for MySQL数据库(就是MySQL5.6版本),有个用户上网记录表6个月的数据量近2000万,保留最近一年的数据量达到4000万,查询速度极慢,日常卡死.严重影响业务 ...

最新文章

  1. 深度学习:知识回收(Lecture1and2)
  2. 完全命令行.NET开发
  3. Spark出现java.lang.stackoverflowerror的解决方法
  4. iOS夯实:RunLoop
  5. 2 获取对象 IDbDataAdapter 用于填充 DataSet 和更新数据源
  6. 鸟哥的Linux私房菜(服务器)- 架站文件習題解答篇
  7. 你确定你真的喜欢编程吗??
  8. UI素材|管理系统数字可视化界面
  9. 红外接收器c语言软件,红外线遥控解码接收程序_C语言.doc
  10. Java之常用函数笔记
  11. TensorFlow 安装教程
  12. es6文档笔记(全)
  13. 阿里用的java编码规范积累
  14. 金融壹账通第一季营收10亿 沈崇锋:推进双重主要上市
  15. 产品经理职责和工作内容
  16. Servlet.init() for servlet [Global] threw exception
  17. Cauchy–Schwarz inequality理解
  18. 开源图像和视频编辑软件汇总
  19. vip混合测试v号打卡好的卡仕达看哈看收到货卡仕达库哈斯
  20. Fluent Ribbon界面布局

热门文章

  1. 华为智慧屏鸿蒙os的特点,华为智慧屏功能特点一览
  2. 贴吧怎么引流_教您如何快速搭建自己的引流池-万能的小胡
  3. HDS存储给主机扩容步骤
  4. php 操作 PSD,PHP中使用Imagick操作PSD文件实例
  5. 图中最深的根 (25分)
  6. 小何同学问了苹果CEO库克哪些问题?
  7. 苹果亮度自动调节怎么关闭_Redmi K30 Pro自动亮度调节和iPhone基本一致,安卓手机的大进步...
  8. Python xlwt 操作 excel 表格基础(二):冻结窗口、设置加密保护、打印设置等
  9. insmod: ERROR: could not insert module my_block.ko: File exists
  10. word2016从某一页开始插入新的起始页码