内容简介:早上上班的时候,查询数据突然发现比较慢,于是去查看数据库,结果发现表数据已经达到了千万级别,于是就准备拆分一下数据表.由于数据表 table_one 数据非常庞大,并且线上业务也在不定时的往表里写入数据,所以这里不会考虑数据迁移.这里采用的方式为数据分类: 历史冷数据 和 近期热数据 .
前言
早上上班的时候,查询数据突然发现比较慢,于是去查看数据库,结果发现表数据已经达到了千万级别,于是就准备拆分一下数据表.
思路
由于数据表 table_one 数据非常庞大,并且线上业务也在不定时的往表里写入数据,所以这里不会考虑数据迁移.
这里采用的方式为数据分类: 历史冷数据 和 近期热数据 .
通过一定的业务条件将 table_one 中的数据进行分类 ,最终形成的分类比例为 10(历史) : 1(近期) ,或者历史冷数据更大.
步骤
- 改表名: 修改原数据表名 table_one 改为 table_old ,即使 table_one 中的数据非常庞大,但是改表也是毫秒级的.
- 创建新表: 重新创建一张新表 table_one , 如果线上业务有数据处理,它也会进入到新表中.这里的 AUTO_INCREMENT 设置为 10005000 预留了 5000 容错数据 .
- 批量新增: 根据数据分类的条件 (这里是 type = 1) ,将 近期热数据 写入到 table_one 中 .这里值得注意的是,查询新增的数据不能大于 MySQL 的最大内存值.(数据大约为 500万条),否则会出现 Out of memory .
- 检测 table_old 中符合条件的最大ID,是否在 table_one 中
- 如果没有数据,则根据 table_old 和 table_one 中的 id 差集 ,新增没有的数据
实现
-- 1.改表名 ALTER TABLE `table_one` RENAME TO `table_old`; -- 2.创建新表 table_one , AUTO_INCREMENT 扩大一定的范围 CREATE TABLE `table_one` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(50) NOT NULL DEFAULT '' COMMENT '名称', `type` tinyint(2) unsigned NOT NULL DEFAULT '0' COMMENT '类型', PRIMARY KEY (`id`), KEY `type` (`type`) USING BTREE ) ENGINE=InnoDB AUTO_INCREMENT=10005000 DEFAULT CHARSET=utf8 COMMENT='原始表'; -- 3.批量新增 INSERT INTO `talbe_one` (`id`,`name`,`type`) SELECT * FROM `table_old` WHERE type = 1 ; -- 4.检测 table_old 中符合条件的最大ID,是否在 table_one 中 SELECT * FROM `table_one` WHERE id = ( SELECT MAX(id) FROM `table_old` WHERE type = 1 ) -- 5.如果没有数据,则根据 table_old 和 table_one 中的 id 差集 ,新增没有的数据
Tips : 数据拆分的方式有很多,具体还是要看自己的业务数据和业务场景 !
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 从数据闭环谈微服务拆分
- 一起做个简单的数据库(十):叶子节点的拆分
- 利用 Pandas 将数据集中的某列文本拆分为多行
- 木兰编程语言重现:完善函数功能,常用字拆分数据处理实例
- JS题目之数组数据拆分重组转成嵌套对象,让脑细胞活跃下
- 数据库考点:为什么要分库分表?用过哪些分库分表中间件?不同的分库分表中间件都有什么优点和缺点?如何对数据库如何进行拆分?
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
虚拟现实:最后的传播
聂有兵 / 中国发展出版社 / 2017-4-1 / 39.00
本书对“虚拟现实”这一诞生自70年代却在今天成为热门话题的概念进行了历史发展式的分析和回顾,认为虚拟现实是当今最重大的社会变革的技术因素之一,对虚拟现实在未来百年可能给人类社会的各个层面带来的影响进行说明,结合多个大众媒介的发展趋势,合理地推演未来虚拟现实在政治、经济、文化等领域的态势,并基于传播学理论框架提出了几个新的观点。对于普通读者,本书可以普及一般的虚拟现实知识;对于传媒行业,本书可以引导......一起来看看 《虚拟现实:最后的传播》 这本书的介绍吧!