数据库
文章平均质量分 80
一叶飘零_sweeeet
大家好,我是果酱(ken),公众号:“果酱桑” 。专注 Java 开发与云原生技术领域,持续分享技术实现方案、实战问题排查、干货心得及前沿动态。已入驻阿里云、稀土掘金、个人公众号等平台,博文同步更新~ 若有技术疑问、经验交流或方向指导,欢迎评论区探讨!以技术为桥,共赴成长之路,期待与你一起深耕技术、To be is to do !共同进步~
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
高并发写入杀器:为何关系数据库成了你的 “性能绊脚石“?
关系数据库由于 ACID 特性、锁机制、事务日志等设计,在高并发写入场景下存在天然瓶颈高并发写入会引发关系数据库的连锁反应:连接池耗尽、锁竞争加剧、I/O 风暴和事务回滚代价高昂。原创 2025-11-18 17:55:54 · 863 阅读 · 0 评论 -
从 0 到 1 精通 MongoDB:实战场景 + 底层原理全解析
MongoDB作为NoSQL数据库的领先者,凭借其灵活文档模型、卓越读写性能和强大的水平扩展能力,已成为现代应用开发的首选数据存储方案。本文深入剖析MongoDB的核心应用场景,包括内容管理系统、实时数据分析、物联网和电商平台,通过30+实战案例展示其设计到优化的全流程技巧。文章对比了MongoDB与关系型数据库的差异,提出混合使用策略,并详细讲解性能优化方法,如索引设计、读写分离、分片集群和数据生命周期管理。此外,还总结了数据模型设计最佳实践和常见性能陷阱规避方案,为开发者提供从入门到精通的完整学习路径。原创 2025-10-10 21:19:56 · 1050 阅读 · 0 评论 -
OceanBase vs TiDB:分布式数据库双雄争霸,谁才是你的菜?还需要分库分表吗?
OceanBase与TiDB是两款主流的国产分布式数据库,各有特点:OceanBase采用Shared-Nothing架构,高度兼容Oracle/MySQL,适合金融级强一致场景;TiDB采用计算存储分离架构,兼容MySQL,支持HTAP,更适合互联网业务。两者都能替代传统分库分表方案,但选型需考虑业务特性、数据规模、团队技术栈等因素。金融核心系统推荐OceanBase,互联网业务和实时分析场景更适合TiDB。随着技术发展,分布式数据库正朝着HTAP融合、云原生和智能化方向演进。原创 2025-10-09 16:38:18 · 960 阅读 · 0 评论 -
从 0 到 1 掌握 ShardingSphere:订单表分表分库实战指南
从 0 到 1 掌握 ShardingSphere:订单表分表分库实战指南原创 2025-09-05 11:20:30 · 972 阅读 · 0 评论 -
从缓存穿透到亿级去重:布隆过滤器与布谷鸟过滤器的终极技术对决
本文对比分析了布隆过滤器和布谷鸟过滤器两种高效判重技术。布隆过滤器通过位数组和多个哈希函数实现空间效率极高的存在性判断,适合静态集合场景如缓存穿透防护(1亿元素仅需12MB空间,误判率1%)。布谷鸟过滤器采用"踢除"机制支持元素删除操作,误判率更低(0.0012%),适合动态更新场景如黑名单管理。测试显示布隆过滤器空间更省(14.3MB vs 18.8MB),而布谷鸟查询更快(180ns vs 230ns)。选型建议:需要删除选布谷鸟,追求空间效率选布隆,两者可结合使用应对不同场景需求。原创 2025-08-09 17:02:00 · 785 阅读 · 0 评论 -
TiDB vs OceanBase:国产分布式数据库双雄争霸,技术内核与场景选型深度解析
本文对比了国产分布式数据库TiDB和OceanBase的核心差异。TiDB采用开源云原生架构,适合互联网场景的高并发读需求,支持HTAP混合负载;OceanBase专注金融级可靠性,支持企业级核心系统的高冲突事务处理。两者在架构设计、分片策略、事务模型、性能表现等方面各有侧重。TiDB以自动分片和MySQL兼容性见长,OceanBase则凭借手动分区规划和Oracle兼容性在金融领域占据优势。文章建议根据业务场景需求进行选型:互联网和HTAP场景推荐TiDB,金融核心系统和企业级应用则更适合OceanBas原创 2025-08-07 22:41:25 · 1878 阅读 · 0 评论 -
从 MySQL 到 TiDB:Java 工程师必学的分布式数据库实战指南
本文为Java工程师详解TiDB分布式数据库的实战指南。从传统MySQL面临的性能瓶颈切入,分析TiDB作为兼容MySQL协议的分布式数据库优势,包括水平扩展能力、高可用设计和云原生特性。深入解析TiDB架构的三层组件(TiDB Server计算层、TiKV存储层和PD调度层)及其协作原理。提供Java集成TiDB的完整实践方案,涵盖Docker环境搭建、表结构设计、JDBC连接配置、MyBatis整合示例,以及事务处理、批量操作等关键场景代码实现。原创 2025-08-07 22:24:48 · 623 阅读 · 0 评论 -
分库分表实战手册:从 0 到 1 拆解亿级数据存储难题,Java 工程师避坑指南
本文深入剖析了分库分表技术在Java后端开发中的关键作用与实践方法。当单表数据量突破5000万行时,传统数据库架构面临查询延迟、写入阻塞等性能瓶颈。文章首先分析了分库分表的必要性,指出其核心价值在于突破硬件限制、提升并发能力和优化资源利用率。随后详细讲解了垂直/水平拆分策略、分片键选择原则以及ShardingSphere中间件的实战应用,包括配置示例、代码实现和性能优化技巧。针对跨分片查询、分布式事务、扩容迁移等复杂场景,提供了二次索引表、Seata事务等解决方案。原创 2025-08-05 09:20:08 · 756 阅读 · 0 评论 -
从 MySQL 到 OceanBase:分布式时代,为什么这款国产数据库成了 Java 开发者的新宠?
《从MySQL到OceanBase:Java开发者如何应对分布式数据库挑战》 随着业务规模爆发式增长,传统MySQL在分库分表、跨库事务和扩容方面面临瓶颈。OceanBase作为蚂蚁集团自研的分布式数据库,凭借高可用、强一致性和MySQL高度兼容性,成为应对高并发、海量数据的理想选择。 核心优势: 分布式架构:自动分片+多副本机制,支持PB级数据,性能达MySQL的5-10倍; 无缝迁移:兼容90%的MySQL语法与JDBC协议,Java项目可低成本切换; 金融级可靠性:多机房部署下RPO=0,支撑双11每原创 2025-07-15 14:09:38 · 1101 阅读 · 0 评论 -
MyCat 实现分库分表实战
MyCat 作为一款强大的数据库中间件,为实现分库分表提供了便捷的解决方案。通过合理的分库分表策略制定、MyCat 的安装配置、数据迁移和应用程序集成,以及性能优化,可以有效地提高系统的性能、可扩展性和可用性。原创 2024-11-06 23:53:58 · 2036 阅读 · 0 评论 -
订单分库分表
订单信息分库分表是解决大规模数据存储和查询性能问题的有效手段。通过合理的分库分表策略、数据库架构设计、数据路由和合并实现,以及性能优化措施,可以有效地提高系统的性能、可扩展性和稳定性。原创 2024-11-06 23:47:56 · 1139 阅读 · 0 评论 -
深入理解 MySQL MVCC:多版本并发控制的核心机制
MySQL MVCC 是一种先进的并发控制技术,它通过维护多个版本的数据来实现非阻塞的读操作,提高了数据库的并发性能和事务隔离性。本文详细介绍了 MVCC 的概念、原理、实现方式、优势、应用场景以及注意事项,并通过示例进行了说明。在实际应用中,我们需要根据具体的业务需求和性能要求,选择合适的事务隔离级别,并注意版本链长度的控制和性能优化,以充分发挥 MVCC 的优势,提高数据库的性能和可靠性。原创 2024-09-16 23:45:37 · 1980 阅读 · 0 评论 -
MySQL主从复制失败的全面指南:原因、诊断与解决方案
在数据库管理和维护的世界里,MySQL的主从复制是一种常见的技术,旨在增强数据的可用性和可靠性。通过复制,数据从一个主数据库服务器自动同步到一个或多个从数据库服务器。尽管这听起来很理想,但实际操作中可能会遇到复制失败的情况,这可能导致数据不一致甚至服务中断。本文将详细探讨MySQL主从复制失败的原因,并提供实用的诊断和解决方案,确保大家能够有效地管理和解决这些问题。原创 2024-05-07 19:41:16 · 1621 阅读 · 0 评论 -
MySQL连接查询深度解析:内连接、左连接、右连接、全连接
MySQL连接查询深度解析:内连接、左连接、右连接、全连接原创 2024-01-09 18:29:04 · 1130 阅读 · 0 评论 -
翻页新篇章:从Offset/Limit到游标分页的全面探索
在现代的Web应用中,有效的分页策略对于提升用户体验和应用性能至关重要。通过对比offset/limit分页和基于指针的分页方法,我们可以看到后者在处理大规模数据集时的明显优势。随着数据量的不断增长,基于指针的分页方法将成为更多开发者的首选。原创 2023-12-11 10:46:21 · 3090 阅读 · 0 评论 -
MySQL中的SHOW FULL PROCESSLIST命令
SHOW FULL PROCESSLIST命令是MySQL中一个非常有用的工具,可以帮助我们理解和监控MySQL服务器的状态。原创 2023-10-11 17:49:06 · 1464 阅读 · 0 评论 -
数据库乐观锁使用指南
关键词:乐观锁、悲观锁、数据库、并发、数据一致性、MyBatis Plus、Java、SQL原创 2023-08-18 16:23:11 · 961 阅读 · 0 评论 -
MySQL开启慢查询
通过开启MySQL的慢查询日志并使用语句分析工具,我们可以轻松地识别和优化执行时间较长的查询语句。这对于提高应用程序的性能和响应时间非常重要。在本文中,我们详细介绍了如何开启慢查询日志和使用语句分析工具,并提供了一个Java示例代码来演示这些操作。原创 2023-07-28 11:34:51 · 2340 阅读 · 0 评论 -
Redis与MySQL数据一致性问题解析
Redis与MySQL数据一致性问题解析原创 2023-07-14 14:47:18 · 4126 阅读 · 1 评论 -
MySQL 回表
在 MySQL 中,当我们查询一张表的时候,通常会使用索引来加速查询。如果查询的列不在索引中,那么 MySQL 就需要回到表中去查找这些列的值,这个过程就被称为回表。回表的过程会造成额外的 IO 操作,降低查询的性能。因此,我们需要尽可能地减少回表的次数。回表是 MySQL 查询优化中的一个重要概念。我们可以通过使用覆盖索引、增加表的冗余列、使用内存表等方法来避免回表,从而提高查询性能。原创 2023-06-27 14:12:55 · 4119 阅读 · 0 评论 -
加密后的敏感字段进行模糊查询解决办法
加密后的敏感字段进行模糊查询解决办法,附java 示例原创 2023-05-29 10:43:00 · 5339 阅读 · 1 评论 -
Mysql 基础练习大全(建表到基本查询)
Mysql 基础练习大全(建表到基本查询)原创 2022-11-04 14:58:27 · 3761 阅读 · 0 评论 -
sqlyog 打不开
问题: sqlyog用了很久突然打不开了,用管理员也打不开解决: 打开路径 C:\Users\ASUS\AppData\Roaming\SQLyog移除该文件夹除sqlyog.ini(保存的是连接配置)文件以外其他内容,再打开软件原创 2022-06-16 14:00:36 · 4276 阅读 · 0 评论 -
mysql 主键id设置未自增实现id自增插入
mysql 报错解决: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '原创 2022-03-24 19:54:45 · 5348 阅读 · 0 评论 -
Mysql 分组查询取max 那条记录其他字段
需求描述:现有有需求要按类型分组,查询出每一分组最近的一条记录,返回字段包含id,定时任务执行时间(start_time)和任务id(job_id)。SELECT id, MAX(start_time) AS startTime,job_id AS jobId FROM `sta_task_alarm` GROUP BY `job_id`;问题描述:上面这个SQL查询出来的id 并不是我们想要的max 那条记录的id,那么我们怎么查询到MAX(start_time) 那条对应的 i.原创 2021-12-21 14:31:03 · 13063 阅读 · 3 评论 -
MySQL存储过程
摘自:https://www.cnblogs.com/mark-chan/p/5384139.html存储过程简介SQL语句需要先编译然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它。存储过程是可编程的函数,在数据库中创建并保存,可以由SQL...转载 2019-05-14 09:40:54 · 536 阅读 · 0 评论 -
MySQL主从同步遇到的坑(多数据源切换)
question: (多数据源切换)测试环境neza 注册用户回调我们接口写app_member 表的时候,发现从库里面有数据,主库里面没有,后来发现是因为加了事物的原因,@Transactional。 写入时数据源切换有问题。==》解决将写库写死成master,读的时候切换多数据源。 网上搜了下可能导致主从不同步的原因,转载自:https://blog.youkuaiyun.com/skymouse2...转载 2018-09-05 15:04:55 · 2072 阅读 · 0 评论 -
Mysql 查去重查 表里其他字段 ,用 groupby
-- SELECT id, material_id, wares_name,supplier_id,stat FROM t_pro_wares WHERE id IN(SELECT MAX(id) FROM t_pro_wares a GROUP BY material_id) AND supplier_id = '02963029-4dd0-4327-b87f-4ff7d997a2d7' AN原创 2016-10-28 17:22:35 · 1090 阅读 · 0 评论 -
Mysql 实现按字段排名(实现oracle的rowNum)
SET @rownum = 0;SELECT (@rownum := @rownum + 1) AS rownum,seq, a.* FROM t_admin_menu a ORDER BY seq;原创 2016-05-09 14:52:26 · 855 阅读 · 0 评论 -
数据库性能
1)数据库设计方面:a. 对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 b. 应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is null 可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:转载 2016-02-26 16:42:26 · 383 阅读 · 0 评论
分享