![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据库
HWQlet
这个作者很懒,什么都没留下…
展开
-
嵌套查询与子查询
文章讲的很好:连接转载 2020-08-03 16:02:39 · 297 阅读 · 0 评论 -
Redis中的锁
说起redis中的锁,可能就SetnxRedLockRedissionSetnxsetnx命令并非单单指redis的setnx key value这条命令一般代指redis中对set命令加上NX参数进行使用,set命令的参数有[EX seconds|PX milliseconds] [NX|XX] [KEEPTTL]setnx的大致原理,主要是key不存在才能set成功,一个进程拿到锁,在没有del 锁之前,别的进程获取锁就会失败另外我们最好设置一个EX或者PX参数,表示超时时间,获得原创 2020-06-21 22:53:47 · 490 阅读 · 0 评论 -
数据库查询的优化
原文写的挺好的,又分成底层优化,查询语句优化等等:要深入理解MySQL的底层实现机制链接1链接2转载 2020-06-20 23:36:13 · 137 阅读 · 0 评论 -
MySQL的锁
锁的类型共享锁和排他锁共享锁和排他锁是InnoDB中的行级锁共享锁是为了当前事务读数据排他锁是为了当前事务去修改某一行数据(update,insert,delete)共享锁设置:select row from tablename where id=xxx LOCK IN SHARE MODE排他锁设置:select row from tablename where id=xxx FOR UPDATE意向锁为什么要意向锁?意向锁是为了能够使行级锁和表级锁能够共存意向锁是表级锁,用来说明事务原创 2020-06-20 23:04:40 · 137 阅读 · 0 评论 -
MongoDB学习笔记(三)
启动MongoDB服务[ ]里面的都是可选项,可以不写mongodb://[username:password@]host1[:port1][,host2[:port2]][...][/[database][?options]]例子:mongodb://localhostmongodb://admin:hwq123456@localhost/test创建数据库use DATABASE_NAME连接数据库服务后,需要创建数据库例如:use hwqtest查看数据列.原创 2020-06-04 21:34:57 · 231 阅读 · 0 评论 -
MongoDB学习笔记(二)
mongodb的基本的概念是文档,集合,数据库SQL术语/概念 MongoDB术语/概念 解释/说明 database database 数据库 table collection 数据库表/集合 row document 数据记录行/文档 column field 数据字段/域 index index 索引 table joins 表连接,MongoDB不支持 primary key .原创 2020-05-30 22:23:52 · 273 阅读 · 0 评论 -
MongoDB学习笔记(一)
NoSQL是not only SQL的缩写,就是说“不仅仅是SQL”NoSQL提倡用非关系型的数据存储,这种存储方式非常灵活,而且速度快,但是不适合客户服务器编程NoSQL的数据非常适合用于进行网络上的传输,适合存储爬虫爬取的数据,适合用于分布式NoSQL数据库分类列存储:Hbase,Hypertable,最大的特点是方便存储结构化和半结构化数据,方便做数据压缩,对针对某一列或者某几列的查询有非常大的IO优势,有点类似于与sharding相对的垂直切分文档存储:MongoDB,一般用原创 2020-05-29 21:31:24 · 350 阅读 · 0 评论 -
学习redis的一些知识点
我们都知道redis是一种缓存数据库,支持事务,持久化(可写入硬盘),LUA脚本,LRU驱动事件,集群高性能:体现在访问数据是在内存中进行访问,内存访问速度比硬盘的访问速度高3个数量级左右高并发:因为访问内存的速度很快,所以单位时间能够承受的并发请求数也是 访问硬盘(传统数据库)无法达到的redis和memcached是分布式缓存,这不同于java中自带的map或者guava实现的本地缓存,虽然map和guava轻量且快速,但是在多主机的集群下面,每个主机(也就是实例)都要各自保存一份缓存.原创 2020-05-17 23:57:31 · 378 阅读 · 0 评论 -
Mysql(InnoDB引擎)--MVCC--多版本并发控制
在数据库事务并发的情况下,会遇到不可重复读的问题不可重复读就是说事务A需要执行两次查询,这时候一个事务B对事务A两次查询的间隙中把某些行给update了,然后事务A两次读出来的数据就不一样要解决这样的问题,一般能想到两种办法:将事务要查询的某些行给上锁和给数据表添加两个版本字段,创建版本和删除版本第一种方法效率较低,第二种方法就是MVCCMVCC只在REPEATABLE READ和READ COMMITED两个隔离级别下工作,其它两个隔离级别下不存在MVCC实现的原理数据表的每一行引原创 2020-05-14 17:46:24 · 173 阅读 · 0 评论 -
数据库的乐观锁和悲观锁
悲观锁:假定会发生并发冲突,屏蔽一切可能违反数据完整性的操作,假设数据肯定会冲突,所以在数据开始读取的时候就把数据锁定住。【数据锁定:数据将暂时不会得到修改】乐观锁:假设不会发生并发冲突,只在提交操作时检查是否违反数据完整性。数据进行提交更新的时候,才会正式对数据的冲突与否进行检测,如果发现冲突了,则让用户返回错误的信息。让用户决定如何去做。1.乐观锁是一种思想,实际实现中,表中有一个版本字段,首先要先获取到要更新的行的版本字段,当需要对某行或某几行更新时,查看该字段与第一次获取的是否相等,一.原创 2020-05-12 11:25:01 · 361 阅读 · 0 评论 -
MySQL索引背后的数据结构及算法原理
个人觉得讲得很底层,很详细的:链接转载 2020-05-12 08:59:30 · 124 阅读 · 0 评论 -
数据库索引理解
索引是对数据库表中一列或多列的值进行排序的一种数据结构,使用索引可快速访问数据库表中的特定信息。如果想按特定职员的姓来查找他或她,则与在表中搜索所有的行相比,索引有助于更快地获取信息。索引的一个主要目的就是加快检索表中数据的方法,亦即能协助信息搜索者尽快的找到符合限制条件的记录ID的辅助数据结构。形象来说就像是新华字典的偏旁部首索引,再某个值域的就直接可以知道从哪里开始找,而不用全表遍历...原创 2020-05-06 22:05:47 · 233 阅读 · 0 评论 -
MySQL--事务的四种隔离级别
MySQL的事务有四种隔离级别:Read Uncommitted,Read Committed,Repeatable Read,Serializable隔离级别越来越严格基本有begin,commit,rollback这三条命令怎么设置数据库的事务隔离级别语句:SET TRANSACTION ISOLATION LEVEL <READ COMMITTED>;事务需要...原创 2020-05-06 21:42:21 · 105 阅读 · 0 评论