- 博客(604)
- 资源 (14)
- 收藏
- 关注
原创 多版本并发控制(MVCC)相关知识
多版本并发控制(MVCC=Multi-Version Concurrency Control),是一种用来解决读 - 写冲突的无锁并发控制。也就是为事务分配单向增长的时间戳,为每个修改保存一个版本。版本与事务时间戳关联,读操作只读该事务开始前的数据库的快照(复制了一份数据)。这样在读操作不用阻塞写操作,写操作不用阻塞读操作的同时,避免了脏读和不可重复读。
2024-04-26 11:15:02 258
原创 分库分表之后主键id解决方案有哪些
Leaf 是美团开源的分布式ID生成器,能保证全局唯一性、趋势递增、单调递增、信息安全,里面也提到了几种分布式方案的对比,但也需要依赖关系数据库、Zookeeper等中间件。这种方式生成的 id 有序,但是需要独立部署数据库实例,成本高,还会有性能瓶颈。但是,引入了新的组件造成系统更加复杂,可用性降低,编码更加复杂,增加了系统成本。美团技术团队文章:https://tech.meituan.com/2017/04/21/mt-leaf.html。不适合作为主键,因为太长了,并且无序不可读,查询效率低。
2024-04-26 11:14:30 455
原创 MySQL的事务隔离级别
最高的隔离级别,完全服从ACID的隔离级别。所有的事务依次逐个执行,这样事务之间就完全不可能产生干扰,也就是说,该级别可以防止脏读、不可重复读以及幻读。对同一字段的多次读取结果都是一致的,除非数据是被本身事务自己所修改,可以阻止脏读和不可重复读,但幻读仍有可能发生。允许读取并发事务已经提交的数据,可以阻止脏读,但是幻读或不可重复读仍有可能发生。最低的隔离级别,允许读取尚未提交的数据变更,可能会导致脏读、幻读或不可重复读。
2024-04-25 16:11:00 185
原创 InnoDB与MyISAM的区别
3、InnoDB是聚集索引,数据文件是和索引绑在一起的,必须要有主键,通过主键索引效率很高。因此,主键不应该过大,因为主键太大,其他索引也都会很大。而MyISAM是非聚集索引,数据文件是分离的,索引保存的是数据文件的指针。1、InnoDB支持事务,MyISAM不支持,对于InnoDB每一条SQL语言都默认封装成事务,自动提交,这样会影响速度,所以最好把多条SQL语言放在begin和commit之间,组成一个事务。5、Innodb不支持全文索引,而MyISAM支持全文索引,查询效率上MyISAM要高。
2024-04-25 16:10:41 105
原创 MySQL常用引擎有哪些?
全表锁,存储在内容中,速度快,但会占用和数据量成正比的内存空间且数据在mysql重启时会丢失,默认使用HASH索引,检索效率非常高,但不适用于精确查找,主要用于那些内容变化不频繁的代码表。全表锁,拥有较高的执行速度,不支持事务,不支持外键,并发性能差,占用空间相对较小,对事务完整性没有要求,以select、insert为主的应用基本上可以使用这引擎。外键约束,并发能力强,占用空间是MYISAM的2.5倍,处理效率相对会差一些。行级锁,提供了具有提交、回滚和崩溃回复能力的事务安全,支持自动增长列,支持。
2024-04-24 17:59:43 209
原创 数据库的脏读、幻读、不可重复读
所谓脏读是指一个事务中访问到了另外一个事务未提交的数据,获得更新前的值。当一个事务正在访问数据并且对数据进行了修改,而这种修改还没有提交到数据库中,这时另外一个事务也访问了这个数据,然后使用了这个数据。因为这个数据是还没有提交的数据,那么另外一个事务读到的这个数据是“脏数据”,依据“脏数据”所做的操作可能是不正确的。那么,在第一个事务中的两次读数据之间,由于第二个事务的修改导致第一个事务两次读取的数据可能不太一样。它发生在一个事务(T1)读取了几行数据,接着另一个并发事务(T2)插入了一些数据时。
2024-04-24 17:59:21 647
原创 数据库锁的相关概念
TABLE,ALTER TABLE等,表锁影响整个表的数据,因此并发性不如行锁好。总是假设最好的情况,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但。总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的。时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁(共享资源每次只给一。个线程使用,其它线程阻塞,用完后再把资源转让给其它线程)。库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作。乐观锁适用于多读的应用类型,这样可以提高吞吐量。
2024-04-23 10:29:38 538
原创 非关系型数据库和关系型数据库区别
NOSQL是基于键值对的,可以想象成表中的主键和值的对应关系,可以用SQL语句方便的在一个表以及多个表之间做非常复杂的数。同样也是因为基于键值对,数据之间没有耦合性,所以非常容易。而且不需要经过SQL层的解析,所以性能非常高。使得对于安全性能很高的数据访问要求得以实现。
2024-04-23 10:28:51 162
原创 数据库索引学习笔记
4、非聚集索引(Non-clustered):非聚集索引指定表的逻辑顺序。3、聚集索引(Clustered):表中各行的物理顺序与键值的逻辑(索引)顺序相同,2、索引降低了插入、删除、修改等维护任务的速度(虽然索引可以提高查询速度,3、唯一索引可以确保每一行数据的唯一性,通过使用索引,可以在查询的过程中。2、主键索引:为表定义一个主键将自动创建主键索引,主键索引是唯一索引的特。位置,索引存储在另一个位置,索引中包含指向数据存储位置的指针。1、唯一索引:唯一索引不允许两行具有相同的索引值。
2024-04-22 15:31:00 459
原创 数据库范式与数据库事务知识笔记
第三范式:满足第二范式并且表中的非主键字段必须不传递依赖于主键字段,每一列。一个用户开启的事务,不能被其他事务的操作所干扰,多个并发事务之间要相互隔。事务开始前和结束后,数据库的完整性约束没有被破坏。隔离性是当多个用户并发访问数据库时,比如操作同一张表时,数据库为每。持久性是指一个事务一旦被提交了,那么对数据库中的数据的改变就是永久。第二范式:满足第一范式并且表中的非主键字段都依赖于主键字段。执行SQL语句,要么全部执行成功,要么全部执行失败。原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚。
2024-04-22 15:30:18 478
原创 常见的数据结构、查找与排序算法
6、堆排序:利用堆的性质(父节点值大于或等于子节点值)进行排序,首先构建大顶堆或小顶堆,然后依次将堆顶元素与末尾元素交换并调整堆结构。1、顺序查找:从列表的第一个元素开始,依次比较直到找到要查找的元素或搜索到最后一个元素。适用于数据量较小的列表。2、链表:物理存储单元上非连续的、非顺序的存储结构,数据元素的逻辑顺序是通过链表的指针地址实现。5、树:如二叉树、红黑树、AVL树等,具有层次关系的集合,常用于高效查找和排序。1、冒泡排序:通过相邻元素之间的比较和交换,使较大的元素逐渐“浮”到序列的末尾。
2024-04-20 21:40:02 307
原创 Maven相关配置与配置示例
Maven是一个项目管理和构建自动化工具,它使用pom.xml文件作为核心配置文件来管理项目的依赖、插件、构建过程等。Maven的配置文件遵循特定的格式和结构,下面是一些关于Maven配置的基本信息以及配置示例。
2024-04-20 21:38:24 141
原创 举例说明IT分词器的分词粒度优化
IK分词器还具备新词发现的能力,可以根据大量的文本数据自动识别和添加新词到词库中,从而提高对新词的分词准确率。在这个例子中,“乒乓球拍”和“拍卖”都是合理的词,但根据上下文,ik_smart可能更倾向于将“乒乓球拍”作为一个整体来处理,而ik_max_word则会给出两种可能的分词结果。对于“卷积神经网络”这样的专业术语,IK分词器能够保持其完整性,避免将其拆分为“卷积”、“神经”和“网络”等单独的词。对于包含专业术语的文本,IK分词器通过内置的词库和算法,能够准确识别并保留这些术语,避免错误的切分。
2024-04-18 18:15:56 131
原创 ik分词器是什么,有那些配置? ik_smart和ik_max_word的两个分词算法有何区别?
ik_smart被称为智能分词,它主要做最粗粒度的拆分,而ik_max_word则被称为最细粒度划分。例如,对于文本“中华人民共和国国歌”,ik_smart可能会将其拆分为“中华人民共和国”和“国歌”,而ik_max_word则会尽可能穷尽所有可能的组合,如“中华人民共和国”、“中华人民”、“中华”、“华人”、“人民共和国”、“人民”、“人”、“民”、“共和国”、“共和”、“和”、“国国”、“国歌”等。总的来说,ik_smart和ik_max_word的主要区别在于其分词粒度和处理方式。
2024-04-18 18:14:16 433
原创 倒排索引是什么?如何选择合适的数据结构构建倒排索引?
最后,搜索引擎可以根据一定的排名算法(如基于词项频率、文档长度、字段权重等因素的得分计算)对文档进行排序,并将最相关的文档返回给用户。它的核心思想是将文档中的每个词项映射到包含这个词项的所有文档的列表,从而可以快速地根据词项找到相关的文档。需要注意的是,倒排索引的构建和维护是一个相对复杂的过程,涉及到文档的分词、词典的生成、倒排列表的构建以及索引的更新等多个步骤。这个列表包含了所有包含该词项的文档的ID以及词项在文档中的位置信息(如词项出现的频率、位置偏移量等)。1、根据查询需求选择合适的数据结构。
2024-04-17 20:05:40 697
原创 ElasticSearch倒排索引原理是什么?如何实现?
然后,它会根据词项在文档中的出现频率、文档的长度、字段的重要性等因素来计算文档与查询条件的匹配度得分。这个列表包含了所有包含该词项的文档的信息,如文档ID、词项在文档中的位置以及词项在文档中出现的频率等。为了进一步加速检索,ElasticSearch还会为每个词项计算一些统计信息,如文档频率(词项在多少个文档中出现)和词项频率(词项在文档中出现的次数)。ElasticSearch会基于词项在文档中的出现频率、文档的长度、字段的权重等因素,为每个匹配的文档计算一个得分。
2024-04-17 20:05:18 1101
原创 Java如何使用ElasticSearch
首先,你需要在你的 Java 项目中添加 ElasticSearch 的客户端依赖。使用 ElasticSearch 的 Java 客户端创建一个连接到 ElasticSearch 集群的实例。这通常涉及指定集群的地址和端口。使用客户端实例,你可以将文档索引到 ElasticSearch 中。确保将 你的ElasticSearch客户端版本号 替换为实际使用的 ElasticSearch 客户端版本号。在这个例子中,我们假设 ElasticSearch 集群运行在本地主机的默认端口 9200 上。
2024-04-16 17:46:42 920
原创 ElasticSearch有那些作用?
它支持自动分片和复制功能,能够自动将数据分散到不同的节点上,并提供数据冗余和容错能力,确保系统的高可用性和稳定性。ElasticSearch提供了强大的全文搜索引擎,能够处理各种复杂的查询,如短语搜索、模糊搜索、范围搜索等。同时,它还提供了强大的安全功能,如身份验证、授权和加密等,保护数据的安全性和隐私性。综上所述,ElasticSearch在全文搜索、实时搜索与分析、可扩展性与分布式特性、日志与监控以及多租户与安全性等方面发挥着重要作用,是构建现代化搜索和分析解决方案的重要工具之一。
2024-04-16 17:46:16 399
原创 ElasticSearch介绍与说明
ElasticSearch在底层利用Lucene的搜索技术,使其能够具有近实时的搜索能力,并且稳定可靠。使用ElasticSearch,你需要先安装和配置集群,然后通过API或者客户端库进行数据的索引、查询和分析操作。一个ElasticSearch集群可以支持多个独立的索引,这些索引的数据是隔离的,但底层基于相同的物理集群。ElasticSearch提供强大的全文搜索引擎,支持复杂的查询语句,比如短语搜索、通配符搜索、范围搜索等。除了全文搜索,ElasticSearch也支持对结构化数据进行高效的搜索。
2024-04-15 07:58:45 361
原创 java如何实现rabbitmq的消息确认机制和消息持久化机制配置和示例
java如何实现rabbitmq的消息确认机制和消息持久化机制配置和示例
2024-04-12 20:15:14 469
原创 RabbitMQ支持哪些消息队列协议?Rabbitmq中包含那些消息模型?
因此,RabbitMQ主要支持AMQP协议。同时,它支持Kubernetes等分布式部署,提供多种语言的SDK,如Java、Go、C#等,使得不同编程语言的客户端都能与RabbitMQ进行通信。RabbitMQ提供了多种消息模型,这些模型使得生产者(发送消息的应用程序)和消费者(接收消息的应用程序)能够以不同的方式交互和通信。这些消息模型提供了灵活的方式来处理消息传递和路由,使得RabbitMQ能够适应各种复杂的应用场景和需求。最基本的队列模型,一个生产者发送消息到一个队列,一个消费者从队列中取消息。
2024-04-10 14:10:39 444
原创 百度灵境矩阵搭建自己的第一个智能体
澄清:在与用户交互的过程中,你需要明确回答用户关于健身和营养学方面的问题,对于非健身相关的问题,你的回应是“我只是一个健身教练,不能回答这个问题噢”,并询问用户是否有健康、健身相关的问题。想创建个智能体,帮我想个名称,关于:**(**是职业,例如英语老师)想创建个智能体,帮我想个开场白,关于:**(**上面选的名称)想创建个智能体,帮我想引导示例,关于:**(**上面选的名称)文心一言:https://yiyan.baidu.com/想创建个智能体,帮我想指令,关于:**(**上面选的名称)
2024-04-10 14:09:30 929
原创 git开源平台测评报告如何编写
详细介绍Git开源平台的核心功能和特点。可以包括分布式版本控制、高效性、分支管理、易于协作、安全性等方面的描述。同时,可以列举一些Git平台的主要优势和特性,以便读者对其有一个全面的了解。
2024-04-08 06:59:15 273
阿里云批量上传代码制品库插件:migrate-local-repo-tool
2024-03-14
MySQL5.6版本的下载、安装与配置
2024-02-29
java开发环境配置jdk版本:jdk-8u131-windows-x64,Java开发环境搭建配置软件
2024-02-29
teighafileconverter-qt5-vc10dll可执行安装包
2023-04-27
vue-edufront0901.zip
2020-08-30
在线教育项目后端组件.zip
2020-07-13
上传头像模块服务器资源 .zip
2020-06-23
在线教育项目数据库文件.zip
2020-06-21
docker中的redis连接测试桌面客户端工具.zip
2020-06-09
redis中文注释版.conf
2020-06-08
JFreechart.zip
2020-05-03
CSS2.0.zip
2020-04-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人