首页
动态
橙Bot
导航
翻译橙
标签分类
文章归档
专栏
图库
友链
留言板
1
引导AI,探索无限可能:深入了解prompt
2
Github:那些你不知道的使用方式
3
博客接入公众号,我是如何做到的?
4
我在青岛~
5
搞懂spring事务机制,这篇文章就够了!
橙序员
累计撰写
185
篇文章
累计创建
65
个标签
累计收到
4
条评论
栏目
首页
动态
橙Bot
导航
翻译橙
标签分类
文章归档
专栏
图库
友链
留言板
搜索
标签搜索
公众号
事务
流处理
大数据
旅行
mongo db
SUNO
github
IDEA
安全
注解
总结
求职
分布式事务
CAP
分布式系统
loadbalancer
装修
买房
前端
方案设计
AIGC
JVM
资讯
Netty
NIO
BIO
zookeeper
RocketMQ
MySQL
stable diffusion
spring MVC
spring AOP
JDBC
mybatis
logback
docker
consul
spring event
新冠
连接池
redis
运维
nginx
hiper-v
DDD
搞笑
数据库
团建
游戏
Gradle
心情
好物
eureka
spring framework
spring boot
设计模式
apache common
ShardingSphere
KAFKA
leetcode
spring cloud
feign
ES
起点
目 录
CONTENT
以下是
数据库
相关的文章
2023-11-29
mongodb优化实践
本文主要介绍了MongoDB的工作原理和为什么刚启动时查询较慢。MongoDB是一种NoSQL数据库,采用BSON格式存储数据,以文档的形式组织数据。数据以数据库为单位,每个数据库包含多个集合,支持水平扩展和分布式存储。复制集由主节点和从节点组成,负责处理写操作和复制数据。刚启动时查询较慢可能是因为冷启动、系统资源不足和索引优化不足等原因导致的。冷启动时需要重新加载缓存和索引,可能需要从磁盘读取数据。系统资源不足会影响查询速度,因此需要确保系统具有足够的资源来支持MongoDB的运行。索引的使用和优化也是影响查询性能的关键因素。最后,本文还提到了向MongoDB保存数据会导致内存中的索引刷新,MongoDB使用内存中的索引来提高查询性能。
2023-11-29
432
0
0
开发技巧
2023-10-25
方案设计:构建高效数据处理系统
以保证数据写入的可靠性,即在数据写入失败时进行重试,直到成功为止。高并发对于高并发场景,需要考虑使用分布式缓存和消息队列等技术来提高系统的并发处理能力。综上所述,一个综合性的方案设计需要考虑业务需求、上线方案以及模型设计,并在数据推送、检索、同步、服务治理、数据写入等方面进行详细的设计和优化。这些方案设计的合理性和准确性直接影响着系统的性能、可靠性和扩展性。因此,在设计方案时应充分考虑各种因素,并选择合适的技术和工具来实现。
2023-10-25
647
0
0
开发技巧
2023-06-26
【译文】InooDb的锁机制
原址: https://dev.mysql.com/doc/refman/8.0/en/innodb-locking.html#innodb-predicate-locks共享锁和独占锁InnoDB实现了标准的行级锁定,其中有两种类型的锁: 共享 ( S) 锁和排它 ( X) 锁。共享( S) 锁允
2023-06-26
446
0
0
文档翻译
2023-06-25
Mysql集群的使用场景
主从复制从库的IO线程负责读取并保存到relay-log主库的进程返回对应上次同步时间之后的bin-log信息从库的sql线程监听relay-log变动并在从库执行binlog和relaylogbinlog: 位于主库,记录主库所有数据的更改,可用于本机数据恢复和主从同步。relaylog: 位于从
2023-06-25
587
0
0
开发技巧
2023-06-23
SQL语句如何优化
优化思路:首先需要使用【慢查询日志】功能,去获取所有查询时间比较长的SQL语句查看执行计划,查看有问题的SQL的执行计划针对查询慢的SQL语句进行优化使用show profile[s] 查看有问题的SQL的性能使用情况慢查询日志慢查询开启通过在配置文件中添加:slow_query_log=ONlon
2023-06-23
445
0
0
开发技巧
2023-06-23
Mysql锁机制详解:全局、表级和行级
按照锁的粒度进行区分,Mysql主要包含三种类型的锁:全局锁:锁整个数据库。表级锁:锁某一张表行级锁:锁的是某条记录,或者记录之间的间隙。按照锁的功能进行区分,锁主要分为共享锁和排他锁:共享锁Shared Locks:允许其他事务加共享锁,不允许其他事务加排他锁排他锁Exclusive Locks:
2023-06-23
409
0
0
开发技巧
2023-06-19
索引之争:B+树vs.组合索引vs.覆盖索引,你选择哪个?
索引是一种用于提高数据检索效率和降低数据库IO成本的数据结构。它通过对数据进行排序和组织,可以快速地进行等值查询和范围查询。不同的数据结构可以实现索引,其中最为合理的选择是B+树。B+树降低了树的高度,减少了查询的遍历次数,同时支持等值查询和范围查询。
在MySQL中,不同引擎使用不同的方式实现索引。在MyISAM引擎中,数据文件和索引文件是分开存储的。它使用B+树构建索引树,叶子节点存储的是索引列的值和对应行的磁盘地址。主键索引和辅助索引的结构相同,只是主键索引的键值是唯一的。在InnoDB引擎中,每个表都有一个聚簇索引,也是使用B+树构建的。聚簇索引的叶子节点存储的是整行记录。除了聚簇索引之外的索引都称为辅助索引,它们只存储主键值而非磁盘地址。
总结起来,索引是一种提高数据检索效率和降低数据库IO成本的数据结构。B+树是一种常用的索引实现方式。在MyISAM引擎中,数据文件和索引文件分开存储,使用B+树构建索引树。而在InnoDB引擎中,每个表都有一个聚簇索引,叶子节点存储整行记录,其他索引称为辅助索引,只存储主键值。
2023-06-19
373
0
0
开发技巧
2023-06-18
InnoDB内存结构与事务管理
InnoDB引擎被广泛使用的原因主要有以下几点:
1. 支持事务:InnoDB是一个支持ACID事务的存储引擎,可以保证数据的一致性、隔离性、持久性等特性,适用于需要高并发读写操作的数据库场景。
2. 缓冲池:InnoDB引擎通过缓冲池来提高数据库的整体性能。缓冲池是一个内存区域,用于缓存磁盘上的数据页,减少了磁盘IO的次数,加快了数据读取和写入速度。
3. 插入缓冲:InnoDB引擎使用插入缓冲来提升数据插入性能。在插入数据时,会先将次要索引的更新记录到插入缓冲中,再通过合并操作提升次要索引的插入性能。
4. 自适应哈希索引:InnoDB引擎可以根据查询的频率和模式,为热点页建立自适应哈希索引,提高连续查询的性能。
5. 锁信息和数据字典信息:InnoDB引擎可以保证并发访问时的线程安全,并且缓存了数据表信息,提升了数据访问的效率。
6. 重做日志缓冲:InnoDB在缓冲池中变更数据时,会先将变更写入重做日志缓冲中,然后再按时或事务提交时写入磁盘,确保数据的持久性。可以通过配置属性控制重做日志的写入时机,提高性能。
综上所述,InnoDB引擎通过支持事务、优化内存结构和提供多种性能优化机制,使得它成为了很多数据库开发人员首选的存储引擎。
2023-06-18
584
0
0
开发技巧
2023-06-04
深入解析MySQL架构:核心要点揭秘
文件结构是指MySQL存储目录中包含的不同部分,包括日志、https认证、表空间和数据文件、InnoDB重做日志以及缓冲池。
其中,日志文件主要用于记录数据库的操作信息和错误信息,包括错误日志、二进制日志、查询日志、慢查询日志和事务redo日志等。错误日志记录运行过程中遇到的严重错误信息和启动关闭信息,二进制日志记录数据库的DDL和非SELECT的DML语句以及执行时间,通常用于主从复制和数据备份恢复。查询日志可记录用户的所有操作,但在高并发环境中会产生不必要的磁盘IO,建议非调试场景不开启。慢查询日志记录执行时间超过阈值的查询语句。
表空间和数据文件是MySQL中存储表数据和索引的地方。系统表空间是被多个表共享的,包含InnoDB数据字典、double write buffer、changebuffer、undo logs的存储区域,以及用户在系统表空间创建的表数据和索引数据。用户表空间只存储用户定义数据表的数据和索引信息,其余信息存放在系统表空间中。数据文件是InnoDB和MyISAM常用的引擎,用于存储实际的数据。
总之,MySQL的文件结构包括日志、https认证、表空间和数据文件、InnoDB重做日志以及缓冲池。这些文件用于记录数据库操作信息、存储表数据和索引,并对数据库的性能和数据恢复起到重要作用。
2023-06-04
399
0
0
开发技巧
2023-04-02
Mybatis如何简化CRUD过程?
在上文 java如何连接数据库?中,我们已经了解了java是如何通过驱动管理器加载驱动创建数据库连接了,在上述流程中我们的输入输出如下:【输入】:数据库连接信息:数据库主机数据库端口号数据库库名用户名密码要执行的sql静态查询sql预占用sql,入参可根据需要设置:sql入参【输出】:sql执行结果
2023-04-02
802
2
1
开发技巧
2023-03-26
java如何连接数据库?
本文旨在说明:如何使用java连接数据库?jdk又是如何规范各个数据库驱动实现的?执行sql需要做哪些过程?在jdk自带的jre中,我们可以在java.sql.*中看到一些关于sql相关的接口和工具类:这些类都为我们做了什么呢?假如你来出一个需求。。。如果你是技术,来不依赖任何包实现查询mysql数
2023-03-26
645
0
0
开发技巧
2023-03-03
chatGPT来面试-数据库篇
数据库的三级缓存是怎么回事?数据库的三级缓存通常指的是Hibernate框架中的缓存机制。Hibernate是一种流行的ORM框架,旨在简化Java应用程序与关系型数据库之间的数据访问。Hibernate提供了一个多级缓存系统,以提高应用程序的性能和响应速度。这个多级缓存系统由三个层级组成,因此被称
2023-03-03
460
0
0
开发技巧
2022-12-03
【译文】c3p0使用介绍文档
使用文档原始地址:https://www.mchange.com/projects/c3p0/快速开始c3p0 被设计为简单易用。只需将文件lib/c3p0-0.9.5.5.jar和lib/mchange-commons-java-0.2.19.jar放入您的应用程序的有效CLASSPATH中,然后
2022-12-03
1273
0
0
文档翻译
2022-10-09
MVCC相关问答
问题1:间隙锁,如果索引为string间隙锁的范围怎么确定?参考答案若字符串只包含数字,则按数字进行排序;若字符串含有字母,则按字母进行排序。相关验证参考:https://blog.csdn.net/mkmlmkmlmkml/article/details/125010620问题2:readView
2022-10-09
542
0
0
开发技巧
2022-09-21
SQL索引的优先级
mysql在索引使用的时候一般都会把数据最小的字段放前面,也就是最能确定结果的字段,因为索引的第一个字段的检索范围是最小的,然后根据可以确定的数据范围的大小依次排序.这个时候不要担心sql里使用字段的顺序是不是和索引里一样,mysql在查询的时候会自动调整顺序优化成和索引一样的顺序.场景应用实际应用
2022-09-21
958
0
0
开发技巧