
数据库
京东云开发者
京东云开发者(Developer of JD Technology)为AI、云计算、IoT等相关领域开发者提供技术分享交流。平台将发布京东产品技术信息、行业技术内容、技术活动及大赛等资讯。拥抱技术,与开发者携手预见未来!
展开
-
MySQL性能优化浅析及线上案例
关于数据库的性能优化其实是一个很复杂的大课题,很难通过一篇帖子讲的很全面和深刻,这也就是为什么我的标题是‘浅析’,程序员的成长一定是要付出代价和成本,因为只有真的在一线切身体会到当时的紧张和压力,对于一件事情才能印象深刻,但反之也不能太过于强调代价,如果可以通过一些别人的分享就可以规避一些自己业务的问题和错误的代价也是好的。原创 2023-01-18 10:00:00 · 17 阅读 · 0 评论 -
Mysql索引覆盖
通常情况下,我们创建索引的时候只关注where条件,不过这只是索引优化的一个方向。优秀的索引设计应该纵观整个查询,而不仅仅是where条件部分,还应该关注查询所包含的列。索引确实是一种高效的查找数据方式,但是mysql也可以从索引中直接获取数据,这样就不在需要读数据行了。原创 2022-12-30 09:53:53 · 31 阅读 · 0 评论 -
学习下Redis内存模型
redis,对于一个java开发工程师来讲,其实算不得什么复杂新奇的技术,但可能也很少人去深入了解学习它的底层的一些东西。下面将通过对内存统计、内存划分、存储细节、对象类型&内部编码这四个模块来学习学习redis的内存模型,手字笔录,潜心修行。原创 2022-12-27 11:32:25 · 38 阅读 · 0 评论 -
MySql索引下推知识分享
索引下推 (Index Condition Pushdown,索引条件下推,简称 ICP),是 MySQL5.6 版本的新特性,它可以在对联合索引遍历过程中,对索引中包含的所有字段先做判断,过滤掉不符合条件的记录之后再回表,能有效的减少回表次数(目前我们使用的 mysql 版本较高,一般大家可能感觉这是正常的,但是 mysql5.6 之前都不是这样实现的,下面会细细道来)。首先,我们大致回顾下 mysql 的基本架构:MySQL 基本的架构示例图。原创 2022-12-22 11:53:47 · 180 阅读 · 0 评论 -
关系型数据库设计三大范式
设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种范式呈递次规范,越高的范式数据库冗余越小。人类语言:范式可以理解为设计一张数据表的表结构,符合的标准级别、规范和要求。而通常我们用的最多的就是第一范式(1NF)、第二范式(2NF)、第三范式(3NF),也就是本文要讲的 “三大范式”。范式的优点采用范式可以降低数据的冗余性。为什么要降低数据的冗余性?十几年前,磁盘很贵,为了减少磁盘存储。以前没有分布式系统,都是单机,只能增加磁盘,磁盘个数也是有限原创 2022-12-19 10:10:13 · 46 阅读 · 0 评论 -
MYSQL-INNODB索引构成详解
对于MYSQL的INNODB存储引擎的索引,大家是不陌生的,都能想到是 B+树结构,可以加速SQL查询。但对于B+树索引,它到底“长”得什么样子,它具体如何由一个个字节构成的,这些的基础知识鲜有人深究。本篇文章从MYSQL行记录开始说起,层层递进,包括数据页,B+树聚簇索引,B+树二级索引,最后在文章末尾给出MYSQL索引的建议。文章涉及较多基础知识,内容较为枯燥,因此采用较多的图片补充说明,希望能对读者有帮助。mysql是关系型数据库,每一行记录都是表结构定义的关系的 显示表达。在脑中很直观地想到,记录存原创 2022-12-08 11:19:18 · 137 阅读 · 1 评论 -
【案例分享】跨机房ES同步实战
众所周知单个机房在出现不可抗拒的问题(如断电、断网等因素)时,会导致无法正常提供服务,会对业务造成潜在的损失。所以在协同办公领域,一种可以基于同城或异地多活机制的高可用设计,在保障数据一致性的同时,能够最大程度降低由于机房的仅单点可用所导致的潜在高可用问题,最大程度上保障业务的用户体验,降低单点问题对业务造成的潜在损失显得尤为重要。同城双活,对于生产的高可用保障,重大的意义和价值是不可言喻的。表面上同城双活只是简单的部署了一套生产环境而已,但是在架构上,这个改变的影响是巨大的,无状态应用的高可用管理、请求流原创 2022-12-08 09:56:36 · 591 阅读 · 0 评论 -
前端精准测试实践
作者:京东云质量部随着前端技术发展,已经转变为数据绑定为主流的框架方式,与后端服务一样,前端代码实现也会涉及相互依赖,引用这些场景,那么应该如何准确的评估前端代码改动的影响范围?依赖开发评估?依靠经验评估?或者直接前端自动化全回归?手工测试全回归?显然以上的策略都不是最优策略,本文叙述了通过对前端代码进行静态分析,找到改动文件影响的功能范围,从实现了一种前端精准测试的思路。前端对外可直接感知的就是页面,最终目标是要确定影响哪个功能。整个前端精准测试划分为4步:第一步,确定影响的页面。第二步,确定影响的功能。原创 2022-12-07 10:51:56 · 192 阅读 · 0 评论 -
事务相关知识集锦
数据库事务与大多数后端软件开发人员的工作密不可分,本文从事务理论、事务技术、事务实践等方面对常用的相关事务知识进行整理总结,供大家参考。 在数据库管理系统中,事务是单个逻辑或工作单元,有时由多个操作组成,在数据库中以一致模式完成的逻辑处理称为事务。一个例子是从一个银行账户转账到另一个账户:完整的交易需要减去从一个账户转账的金额,然后将相同的金额添加到另一个账户。 原子性( atomicty)事务中的全部操作在数据库中是不可分割的,要么全部完成,要么全部不执行。一致性(consistency)原创 2022-12-07 10:23:06 · 243 阅读 · 0 评论 -
为什么mysql不推荐使用雪花ID作为主键
在mysql中设计表的时候,mysql官方推荐不要使用uuid或者不连续不重复的雪花id(long形且唯一),而是推荐连续自增的主键id,官方的推荐是auto_increment,那么为什么不建议采用uuid,使用uuid究竟有什么坏处?今天我们就来分析这个问题,探讨一下内部的原因。原创 2022-11-30 14:46:29 · 142 阅读 · 0 评论 -
流程编排、如此简单-通用流程编排组件JDEasyFlow介绍
如果仅是服务编排场景,则流程的执行仅依赖内存和CPU,并且是在流程客户端执行,性能上依赖于客户端服务器的性能,普通笔记本实测1秒可执行一个流程请求的1w+个节点,1秒可执行1万+次含1个节点的流程请求。· 如果需要流程状态管理和流程持久化功能,流程引擎在执行时会到流程服务端查询和保存流程实例和流程节点的状态,性能上主要依赖于数据库的查询和插入效率。· 对于流程任务审批功能,流程的任务审批流转是在服务端执行,一方面取决于流程服务端的计算性能,另一方面同样取决于数据库的查询和插入效率。原创 2022-11-25 11:26:31 · 529 阅读 · 0 评论 -
ElasticSearch深度分页详解
ElasticSearch 是一个实时的分布式搜索与分析引擎,常用于大量非结构化数据的存储和快速检索场景,具有很强的扩展性。纵使其有诸多优点,在搜索领域远超关系型数据库,但依然存在与关系型数据库同样的深度分页问题,本文就此问题做一个实践性分析探讨原创 2022-11-15 11:41:03 · 724 阅读 · 0 评论 -
京东云开发者|mysql基于binlake同步ES积压解决方案
针对 MQ 积压问题,并行消费可以是解决问题的一大利器,本文从 binlake 同步 ES 进行分析,同时针对积压推荐俩种方案,并从性能合理利用及扩展性分析,简要介绍方案二并行有序消费策略,希望能够帮助大家,如有问题,请随时指出!原创 2022-11-08 10:57:33 · 728 阅读 · 0 评论 -
京东云开发者|ElasticSearch降本增效常见的方法
随着Elasticsearch越来越受欢迎,企业花费在ES建设上的成本自然也不少。那如何减少ES的成本呢?今天我们就特地来聊聊ES降本增效的常见方法。原创 2022-10-31 13:55:45 · 459 阅读 · 0 评论 -
京东云开发者|京东云RDS数据迁移常见场景攻略
云时代已经来临,云上很多场景下都需要数据的迁移、备份和流转,各大云厂商也大都提供了自己的迁移工具。本文主要介绍京东云数据库为解决用户数据迁移的常见场景所提供的解决方案。原创 2022-10-28 10:17:01 · 848 阅读 · 0 评论 -
Redis数据结构(二)-List、Hash、Set及Sorted Set的结构实现
之前介绍了Redis的数据存储及String类型的实现,接下来再来看下List、Hash、Set及Sorted Set的数据结构的实现。原创 2022-10-26 10:15:00 · 148 阅读 · 0 评论 -
Redis数据结构(一)-Redis的数据存储及String类型的实现
redis作为k-v数据存储,因查找和操作的时间复杂度都是O(1)和丰富的数据类型及数据结构的优化,了解了这些数据类型和结构更有利于我们平时对于redis的使用。下一期将对其它常用数据类型List、Hash、Set、Sorted Set所使用的ZipList、QuickList、SkipList做进一步介绍,对于文章中不清晰不准确的地方欢迎大家一起讨论交流。作者:盛旭。原创 2022-10-25 10:15:00 · 181 阅读 · 0 评论 -
京东云TiDB SQL优化的最佳实践
在等价变化结束之后,TiDB 会得到一个与原始查询等价的查询计划结构,之后根据数据分布、以及一个算子具体的执行开销,来获得一个最终的执行计划,同时,TiDB 在执行 PREPARE 语句时,可以选择开启缓存来降低 TiDB 生成执行计划的开销。在SQL优化的工作中,经常会通过加hint的方式改变SQL的执行计划,从而达到了优化的目的,但是缺点是对SQL进行了硬编码,如果业务程序使用了ORM框架,SQL的改造难度会增加。场景:数据库迁移到TiDB,SQL在MySQL运行不到1S,在TiDB运行超过30S。原创 2022-10-18 14:29:25 · 50 阅读 · 0 评论 -
SQL抽象语法树及改写场景应用
本文是基于环境隔离的技术预研过程产生的,其中改写SQL的实现,是数据库在数据隔离上的一种尝试。可以让开发人员无感知的情况下,以插件形式,在SQL提交到MySQL前实现动态改写,只需要在数据表上增加字段、标识环境差异,后续CRUD的SQL都会自动增加标识字段(flag=’预发’、flag=’生产’),所操作的数据只能是当前应用所在环境的数据。原创 2022-10-09 10:07:30 · 423 阅读 · 0 评论 -
UData查询引擎优化-如何让一条SQL性能提升数倍
1.1 背景在大数据的范畴,我们经历了数据产业化的历程,从各个生产系统将数据收集起来,经过实时和离线的数据处理最终汇集在一起,成为我们的主题域数据,下一步挖掘数据的价值将成为关键。数据应用直接体现数据的价值,数据应用多种多样,它们使用数据的方式也各不相同,UData作为数据资产和数据应用之间的桥梁,它的第一目标是解决所谓的数据使用的最后一公里问题。UData平台以数据指标为基本的管理单位,通过四个阶段对于数据使用提供支持,一体化整合数据链路的整个生命周期,接数据、管数据、找数据、用数据。原创 2022-10-08 13:45:04 · 679 阅读 · 0 评论 -
原生Redis跨数据中心双向同步优化实践
公司基于业务发展以及战略部署,需要实现在多个数据中心单元化部署,一方面可以实现多数据中心容灾,另外可以提升用户请求访问速度。需要保证多数据中心容灾或者实现用户就近访问的话,需要各个数据中心拥有一致的全量数据,如果真正实现用户就近读写,也就是实现真正的业务异地多活,数据同步是异地多活的基础,这就需要多数据中心间数据能够双向同步。原创 2022-09-28 10:11:28 · 125 阅读 · 0 评论 -
如何实现数据库读一致性
数据的一致性是数据准确的重要指标,那如何实现数据的一致性呢?本文从事务特性和事务级别的角度和大家一起学习如何实现数据的读写一致性。原创 2022-09-27 10:05:54 · 286 阅读 · 0 评论 -
Lua脚本在Redis事务中的应用实践
Redis在小数据操作并发可达到10W,针对与业务中对资源强校验且高并发场景下使用Redis配合Lua脚本完成简单逻辑处理抗并发量是个不错的选择。注:Lua脚本逻辑尽量简单,Lua脚本实用于耗时短且原子操作。耗时长影响Redis服务器性能,非原子操作或逻辑复杂会增加于脚本调试与维度难度。理想状态是将业务用Lua脚本包装成一个如Redis命令一样的操作。原创 2022-09-23 09:40:02 · 945 阅读 · 0 评论 -
MySQL DDL执行方式-Online DDL介绍
日常开发我们对一条DML语句较为熟悉,很多开发人员都了解sql的执行过程,比较熟悉,但是DDL是如何执行的呢,大部分开发人员可能不太关心,也认为没必要了解,都交给DBA吧。 其实不然,了解一些能尽量避开一些ddl的坑,那么下面带大家一起了解一下DDL执行的方式。原创 2022-09-22 10:04:28 · 442 阅读 · 0 评论 -
一条sql了解MYSQL的架构设计
对于一个服务端开发来说 MYSQL 可能是他使用最熟悉的数据库工具,然而,大部分的Java工程师对MySQL的了解和掌握程度,大致就停留在这么一个阶段:它可以建库、建表、建索引,然后就是对里面的数据进行增删改查,语句性能有点差?没关系,在表里建几个索引或者调整一下查询逻辑就可以了,一条sql,MYSQL是如何处理的,为我们做了什么,完全是个黑盒。本文主要通过sql执行的过程打破这样一个黑盒的认知,来了解MYSQL的逻辑架构。原创 2022-09-21 11:00:14 · 815 阅读 · 0 评论 -
PostgreSQL逻辑复制解密
在数字化时代的今天,我们都认同数据会创造价值。为了最大化数据的价值,我们不停的建立着数据迁移的管道,从同构到异构,从关系型到非关系型,从云下到云上,从数仓到数据湖,试图在各种场景挖掘数据的价值。而在这纵横交错的数据网络中,逻辑复制扮演着及其重要的角色。让我们将视角从复杂的网络拉回其中的一个端点,从PostgreSQL出发,对其逻辑复制的原理进行解密。原创 2022-09-21 11:02:39 · 249 阅读 · 0 评论 -
一步步搞懂MySQL元数据锁(MDL)
到底什么是metadata lock?这个锁等待是如何产生的?会带来什么影响?最后又如何来解决?原创 2022-09-16 10:38:29 · 126 阅读 · 0 评论 -
这份数据安全自查checklist请拿好,帮你补齐安全短板的妙招全在里面!
京东智联云安全拥有业界领先的安全研究团队,经过多年实践与经验积累,京东智联云已面向不同业务场景制定了完善详细的安全配置Checklist。京东智联云安全Checklist可以根据用户的需求进行补充和调整,用户也可以基于该Checklist进行自定义。原创 2022-09-09 10:46:14 · 1170 阅读 · 0 评论 -
如何守护数据安全? 这里有一份RDS灾备方案为你支招
本文围绕云数据库RDS对数据库的灾备方案进行介绍,除了RDS实例以外,完整的灾备方案还应该包含主机、LB等部署您应用程序的所有其他资源。灾备预案需要在实际生产环境中反复测试和验证,完整的灾备方案可以让您及时发现潜在问题,更加从容地应对生产环境中的各种意外和风险及时发现潜在的问题。原创 2022-09-05 17:43:42 · 84 阅读 · 0 评论 -
【案例回顾】春节一次较波折的MySQL调优
春节长假某日,阳光明媚,春暖花开,恰逢冬奥会开幕,想着一定是一个黄道吉日,必能顺风顺水。没想到却遇到一个有点小波折的客户报障。原创 2022-09-01 10:28:10 · 351 阅读 · 0 评论 -
记录一次数据库CPU被打满的排查过程
近期随着数据量的增长,数据库CPU使用率100%报警频繁起来。第一个想到的就是慢Sql,我们对未合理运用索引的表加入索引后,问题依然没有得到解决,深入排查时,发现在 order by id asc limit n时,即使where条件已经包含了覆盖索引,优化器还是选择了错误的索引导致。通过查询大量资料,问题得到了解决。这里将解决问题的思路以及排查过程分享出来,如果有错误欢迎指正。...原创 2022-08-31 10:09:02 · 253 阅读 · 2 评论 -
京东云PostgreSQL在GIS场景的应用分享
京东云基于开源的 PostgreSQL构建的一款功能强大的关系型数据库云数据库 PostgreSQL ,支持丰富的数据类型及地理信息扩展,具有强大的并行计算能力。支持备份、监控、迁移等全套解决方案。原创 2022-08-30 09:47:59 · 51 阅读 · 0 评论 -
Mysql和Redis数据如何保持一致
使用过缓存的人都应该知道,在实际应用场景中,要想实时刻保证缓存和数据库中的数据一样,很难做到。基本上都是尽可能让他们的数据在绝大部分时间内保持一致,并保证最终是一致的。原创 2022-08-23 15:50:26 · 295 阅读 · 0 评论 -
RedisSyncer 同步引擎的设计与实现
本文主要介绍reidssyncer引擎(既redissyncer-server)的设计与实现,以及引擎运行的机制。原创 2022-08-23 11:09:36 · 105 阅读 · 0 评论 -
记录一次minerd肉鸡木马的排查思路
在日常使用Linux系统服务器时,如果系统安全维护方面做的不够规范和严谨,很容易导致主机被黑客植入恶意木马病毒被当做肉鸡。以后就是一次肉鸡木马病毒的排查过程,有助于运维服务器时遇到此情况时进行针对性的排查和修复。...原创 2022-08-19 09:30:00 · 66 阅读 · 0 评论 -
从一条更新SQL的执行过程窥探InnoDB之REDOLOG
数据库为了取得更好的读写性能,InnoDB会将数据缓存在内存中(InnoDB Buffer Pool),对磁盘数据的修改也会落后于内存,这时如果进程或机器崩溃,会导致内存数据丢失,为了保证数据库本身的一致性和持久性,InnoDB维护了REDO LOG。修改Page之前需要先将修改的内容记录到REDO中,并保证REDO LOG早于对应的Page落盘,也就是常说的WAL,Write Ahead Log。当故障发生导致内存数据丢失后,InnoDB会在重启时,通过重放REDO,将Page恢复到崩溃前的状态。...原创 2022-08-18 09:30:00 · 80 阅读 · 0 评论 -
MySql主从同步介绍
大家好,Mysql是大家最常用的数据库,下面为大家带来mysql主从同步知识点的分享,以便巩固mysql基础知识,如有错误,还请各位大佬们指正。原创 2022-08-17 10:01:27 · 258 阅读 · 0 评论 -
业务数据迁移上云的一些技术思考
在支持京东集团内部及京东云外部客户的业务迁移到京东公有云及京东私有云、京东政务云的过程中,京东科技-京东云事业群-技术服务组积累了相关业务系统数据迁移的一些管理和技术经验,以案例的形式分享给大家,希望对大家的业务迁移工作有所帮助。...原创 2022-08-16 12:53:37 · 506 阅读 · 1 评论 -
MYSQL 最朴素的监控方式
今天介绍一下完全采用 mysql 自有方式采集获取监控数据,在单体下达到最快速、方便、损耗最小。原创 2022-08-12 10:02:40 · 108 阅读 · 0 评论 -
基于 SPI 的增强式插件框架设计
其实本文的技术,从双亲委派模型到自定义类加载器,再到基于自定义类加载器实现的类交换,基于 Java SPI 实现的类交换,最后到基于 Java SPI+ Java Agent + Javassist 实现的插件框架及框架支持远程插件化,来一步一步的向读者展示所涉及的知识点...原创 2022-08-11 12:12:30 · 172 阅读 · 0 评论