我们的分库分表中间件在线上运行了两年多,到目前为止还算稳定。在笔者将精力放在处理各种灾难性事件(例如中间件物理机宕机/数据库宕机/网络隔离等突发事件)时。竟然发现还有一些奇怪的corner case。现在就将排查思路写成文章分享出来。 Bug现场 应用拓扑 应用通过中间件连后端多个数据库,sql会根 ...
分类:
数据库 时间:
2020-05-12 11:54:20
阅读次数:
76
partition($data, $field, $rule); // $data 分表字段的数据 // $field 分表字段的名称 // $rule 分表规则 // 用于写入 $data = [ 'user_id' => 110, 'user_name' => 'think' ]; $rule ...
分类:
数据库 时间:
2020-05-11 13:13:47
阅读次数:
67
前言 移动互联网时代,海量的用户数据每天都在产生,基于用户使用数据等这样的分析,都需要依靠数据统计和分析,当数据量小时,数据库方面的优化显得不太重要,一旦数据量越来越大,系统响应会变慢,TPS直线下降,直至服务不可用。 补充 在mysql中,每个数据库最多可创建20亿个表,一个表允许定义1024列, ...
分类:
数据库 时间:
2020-05-07 13:43:11
阅读次数:
140
谈到性能优化分析一般会涉及到: Java代码层面的,典型的循环嵌套等 还会涉及到Java JVM:内存泄漏溢出等 MySQL数据库优化:分库分表、慢查询、长事务的优化等 阿里P8架构师谈:MySQL慢查询优化、索引优化、以及表等优化总结 阿里P8架构师谈:架构设计之数据库垂直、水平拆分六大原则(数据 ...
分类:
其他好文 时间:
2020-05-07 13:38:17
阅读次数:
117
处理大数据量数据访问速度缓慢的问题 方案1 水平分库分表,比如根据年份划分, 数据库、 数据库等等 查询的时候根据查询时间,去不同的数据库查询,然后组合结果返回 示例代码 "HistoricalDataManage" 方案2 建立 和`实时数据库`,历史数据库存储所有数据,实时数据库仅保留常用数据 ...
分类:
其他好文 时间:
2020-05-06 21:35:33
阅读次数:
89
Mysql基础操作及增删改查 一、SQL语句的注意事项 1. 每条SQL语句结束时要以;做为结束符,也可以使用\G以文本模式输出.(除了use命令) 2. SQL语句的关键字不区分大小写(除了库名字和表名字) 3. 当你需要补全大部分库和表名使用\ 4. 当你不需要一条语句输出的结果以\c结束 5. ...
分类:
数据库 时间:
2020-05-06 19:41:32
阅读次数:
72
原文:.net core 基于Dapper 的分库分表开源框架(core-data) 一、前言 感觉很久没写文章了,最近也比较忙,写的相对比较少,抽空分享基于Dapper 的分库分表开源框架core-data的强大功能,更好的提高开发过程中的效率; 在数据库的数据日积月累的积累下,业务数据库中的单表... ...
分类:
移动开发 时间:
2020-05-06 01:13:54
阅读次数:
87
数据迁移的类型 随着业务的发展,存储也会经常性的需要迁移。以下场景是我们开发过程中经常遇到的 1. 业务、团队在快速扩张,需要适当时机进行微服务的拆分,需要独立的数据库,将数据从源数据库迁移到新的数据库 2. 单表的记录数比较大,需要进行分库分表。需要将老表的数据迁移到新的分表中。 3. 存储选型不 ...
分类:
其他好文 时间:
2020-05-04 13:13:58
阅读次数:
129
垂直分库是指按照业务将表进行分类,分布到不同的数据库上面,每个库可以放在不同的服务器上,它的核心理念是专库专用。 (1)创建数据库,创建表 CREATE DATABASE `user_db` CHARACTER SET 'utf8' COLLATE 'utf8_general_ci'; USE us ...
分类:
数据库 时间:
2020-05-02 21:08:51
阅读次数:
195
分库分表的方式:分库分表包括分库和分表两个部分,通常包括:垂直分库、水平分库、垂直分表、水平分表四种方式。 垂直分表: 垂直分表定义:将一个表按照字段分成多表,每个表存储其中一部分字段。 一般来说,某业务实体中的各个数据项的访问频次是不一样的,部分数据项可能是占用存储空间比较大的BLOB或是TEXT ...
分类:
其他好文 时间:
2020-05-02 15:13:07
阅读次数:
57