由于数据量以及IO效率的因素,很多项目对数据支持的数据库会采取分库分表的方式。使用了分库分表之后需要解决的一个问题就是主键的生成。多个表之间的主键就不能用数据库本身的自增主键来支持,因为不同表之间生成的主键会重复。所以需要其他的方式获取主键ID。一般来说解决方案主要有三种:oracle sequence : 基于第三方oracle的SEQ.NEXTVAL来获 ......
386
0
0
2022-07-30
作者|华慰编辑|小智“分库分表”是谈论数据库架构和优化时经常听到的关键词。对于这些业务量正在高速增长的公司,它并不那么容易实践。这是来自大众点评团队的技术实践,仅供参考。注:本文授权转自微信公众号「美团点评技术团队」写在前面原大众点评的订单单表早已突破两百G,由于查询维度较多,即使加了两个从库,优化索引,仍然存在很多查询不理想的情况。去年大量抢购活动的开展, ......
436
0
0
2022-07-24
一、数据库瓶颈不管是IO瓶颈,还是CPU瓶颈,最终都会导致数据库的活跃连接数增加,进而逼近甚至达到数据库可承载活跃连接数的阈值。在业务Service来看就是,可用数据库连接少甚至无连接可用。接下来就可以想象了吧(并发量、吞吐量、崩溃)。1、IO瓶颈第一种:磁盘读IO瓶颈,热点数据太多,数据库缓存放不下,每次查询时会产生大量的IO,降低查询速度 -> 分 ......
481
0
0
2022-07-15
阅读下面的PL/SQL程序块:BEGININSERT INTO EMPLOYEE(SALARY,LAST_NAME,FIRST_NAME) VALUES(35000,'WANG','FRED');SAVEPOINT SAVE_A;INSERT INTO EMPLOYEE(SALARY,LAST_NAME,FIRST_NAME) VALUES(40000,'W ......
519
0
0
2022-07-15
当一个系统访问量及用户量增加,数据库的数据也随之增加。当Mysql中一张表的记录数超过1000万,会出现性能的大幅下降,甚至一条简单的SQL查询都有可能阻塞整个数据库。这时需要对数据库的架构动态扩展设计如:水平分区,才能使系统达到友好的用户体验。示例图1示例图2水平分区设计思路水平分区技术:同一个数据库表中的记录通过Hash算法取模方式等拆成多张表,分别存储 ......
444
0
0
2022-07-10
mybatis 打印全sql在此之前都是用的 IDEA 2018.3,前几天才更新到了 2020.3.2但是在进行同步插件的时候,oh shit!!! 我发现 MyBatis Log Plugin 居然开始收费了心想,难道我要回退到之前的版本吗?可是人家又不想,2020.3 版本我太喜欢了,比 CC 还喜欢,随后我就跑去 GitHub 搜有没有什么方法可以免 ......
546
0
0
2022-07-09
作者丨雷鹏责编丨仲培艺作为数据库,在系统资源(CPU、内存、SSD、磁盘等)一定的前提下,我们希望:存储的数据更多:采用压缩,这个世界上有各种各样的压缩算法;访问的速度更快:更快的压缩(写)/解压(读)算法、更大的缓存。几乎所有压缩算法都严重依赖上下文:位置相邻的数据,一般情况下相关性更高,内在冗余度更大;上下文越大,压缩率的上限越大(有极限值)。块压缩传统 ......
512
0
0
2022-06-24
我喜欢披萨。开玩笑啦。我喜欢披萨。特别是如果它是免费的时候。我甚至喜欢看起来像免费披萨的东西。就在某一天,一个包裹来了我的邮箱中,它被包在一个披萨盒子里面。我要给 Etsy 店主五星好评。我保存了这个箱子。这比在披萨店中味道好多了。免费比萨是我在校园里最喜欢的东西之一。在校园里的新俱乐部或组织的广告宣传单的角落里总会提到集会上会提供免费披萨。这样我就会在那里 ......
396
0
0
2022-06-15
突然一天,服务器频繁报警,一个内部管理系统连接数据库超时,导致系统无法访问。我马上展开调查,日志显示【Cannot get a connection, pool error Timeout waiting for idle object】。这明显是数据库连接不够了。马上查看rds的连接数情况。发现另一个任务系统占用了大部分连接。暂时紧急处理,杀掉了一些无用的 ......
611
0
0
2022-06-11
无论我们建站采用的虚拟主机、VPS、还是服务器,甚至有些服务商提供全管理型服务器,但是为了确保我们网站、项目数据的安全,我们也需要自己到服务器备份数据到本地或者备份服务器。从个人角度考虑,即便商家提供有备份服务、快照备份、甚至全管理,我们也需要自己备份到其他备用机器、或者本地电脑中,这样才能确保安全。如果我们网站数据并不是很多,而且能够管理好网站,我们可以采 ......
425
0
0
2022-06-07
对用户而言,优秀的对外数据分析工具非常关键,因此选择合适的数据架构就显得尤为重要。现如今,数据分析不再是仅面向内部开发人员。当为业务方构建数据分析系统时,你需要确认哪种数据库后端是最合适的。程序员的本能可能是“选用自己了解的数据库(例如 PostgreSQL 或 MySQL)”。数据仓库也可能会扩展核心的 BI 仪表板和报告之外的功能,不过对业务方 ......
471
0
0
2022-06-06
看下一面数据库面试题面试题:柠檬班第30期学生要毕业了,他们的成绩存放在下表中,现在需要查询每个班的最高分同学,并且显示该同学的名字!附建表和初始化数据-- 1:创建表CREATE TABLE tb_lemon_grade (分析题目:数据表中每行记录保存的是每个学生的姓名、各科成绩和班级,现在需求是求出每个班的最高分,所以肯定需要以班级去进行分组(GROU ......
484
0
0
2022-05-29
日常工作中我们可能会遇到如下的问题,在未引入数据库事务这一特性前,应用程序在处理这些问题时总显得过于复杂,如:数据库在写入一半数据时崩溃订单数据保存一半后网络链接中断多个客户端可能会同时写入数据库多个客户端之间的条件竞争可能会扰乱整个应用程序而事务一直是简化这些问题的首选机制。他为上层应用程序提供一个可靠性保障:将多个读写操作组合成一个逻辑单元来执行,要么全 ......
461
0
0
2022-05-27
区块链可谓是当下继云计算之后,在科技与金融领域最为热门的话题。有专家认为,区块链技术是驱动互联网变革的核心技术,此项技术即将开创更具颠覆性价值的互联网时代,甚至会替代“互联网+”时代,开创“区块链+”时代。金融领域是区块链最先应用的一个领域。据悉,我国央行运用区块链技术进行数字货币的开发,国外银行运用区块链技术进行业务的结算和清算。区块链技术经历了区块链1. ......
435
0
0
2022-05-25
4 月 1 日,openGauss 开源数据库社区,发布了最新 3.0 社区版,并同步开放供业界下载。它是继 2.0 版本后,又一个面向行业客户核心业务场景提供的具有里程碑意义的版本。本次 3.0 版本历时半年,openGauss 社区生态紧密合作,协同研发,累计收到超过 1600 个 PR,3500 次代码提交,其中社区贡献占比已超过 45%,优化和新增上 ......
643
0
0
2022-05-21