
数据库
HWQlet
这个作者很懒,什么都没留下…
展开
-
嵌套查询与子查询
文章讲的很好:连接转载 2020-08-03 16:02:39 · 353 阅读 · 0 评论 -
Redis中的锁
说起redis中的锁,可能就 Setnx RedLock Redission Setnx setnx命令并非单单指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 · 548 阅读 · 0 评论 -
数据库查询的优化
原文写的挺好的,又分成底层优化,查询语句优化等等:要深入理解MySQL的底层实现机制 链接1 链接2转载 2020-06-20 23:36:13 · 173 阅读 · 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 · 170 阅读 · 0 评论 -
MongoDB学习笔记(三)
启动MongoDB服务 [ ]里面的都是可选项,可以不写 mongodb://[username:password@]host1[:port1][,host2[:port2]][...][/[database][?options]] 例子: mongodb://localhost mongodb://admin:hwq123456@localhost/test 创建数据库 use DATABASE_NAME 连接数据库服务后,需要创建数据库 例如: use hwqtest 查看数据列.原创 2020-06-04 21:34:57 · 282 阅读 · 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 · 309 阅读 · 0 评论 -
MongoDB学习笔记(一)
NoSQL 是not only SQL的缩写,就是说“不仅仅是SQL” NoSQL提倡用非关系型的数据存储,这种存储方式非常灵活,而且速度快,但是不适合客户服务器编程 NoSQL的数据非常适合用于进行网络上的传输,适合存储爬虫爬取的数据,适合用于分布式 NoSQL数据库分类 列存储:Hbase,Hypertable,最大的特点是方便存储结构化和半结构化数据,方便做数据压缩,对针对某一列或者某几列的查询有非常大的IO优势,有点类似于与sharding相对的垂直切分 文档存储:MongoDB,一般用原创 2020-05-29 21:31:24 · 381 阅读 · 0 评论 -
学习redis的一些知识点
我们都知道redis是一种缓存数据库,支持事务,持久化(可写入硬盘),LUA脚本,LRU驱动事件,集群 高性能:体现在访问数据是在内存中进行访问,内存访问速度比硬盘的访问速度高3个数量级左右 高并发:因为访问内存的速度很快,所以单位时间能够承受的并发请求数也是 访问硬盘(传统数据库)无法达到的 redis和memcached是分布式缓存,这不同于java中自带的map或者guava实现的本地缓存,虽然map和guava轻量且快速,但是在多主机的集群下面,每个主机(也就是实例)都要各自保存一份缓存.原创 2020-05-17 23:57:31 · 408 阅读 · 0 评论 -
Mysql(InnoDB引擎)--MVCC--多版本并发控制
在数据库事务并发的情况下,会遇到不可重复读的问题 不可重复读就是说事务A需要执行两次查询,这时候一个事务B对事务A两次查询的间隙中把某些行给update了,然后事务A两次读出来的数据就不一样 要解决这样的问题,一般能想到两种办法:将事务要查询的某些行给上锁和给数据表添加两个版本字段,创建版本和删除版本 第一种方法效率较低,第二种方法就是MVCC MVCC只在REPEATABLE READ和READ COMMITED两个隔离级别下工作,其它两个隔离级别下不存在MVCC 实现的原理 数据表的每一行引原创 2020-05-14 17:46:24 · 212 阅读 · 0 评论 -
数据库的乐观锁和悲观锁
悲观锁:假定会发生并发冲突,屏蔽一切可能违反数据完整性的操作,假设数据肯定会冲突,所以在数据开始读取的时候就把数据锁定住。【数据锁定:数据将暂时不会得到修改】 乐观锁:假设不会发生并发冲突,只在提交操作时检查是否违反数据完整性。数据进行提交更新的时候,才会正式对数据的冲突与否进行检测,如果发现冲突了,则让用户返回错误的信息。让用户决定如何去做。 1.乐观锁是一种思想,实际实现中,表中有一个版本字段,首先要先获取到要更新的行的版本字段,当需要对某行或某几行更新时,查看该字段与第一次获取的是否相等,一.原创 2020-05-12 11:25:01 · 405 阅读 · 0 评论 -
MySQL索引背后的数据结构及算法原理
个人觉得讲得很底层,很详细的:链接转载 2020-05-12 08:59:30 · 154 阅读 · 0 评论 -
数据库索引理解
索引是对数据库表中一列或多列的值进行排序的一种数据结构,使用索引可快速访问数据库表中的特定信息。如果想按特定职员的姓来查找他或她,则与在表中搜索所有的行相比,索引有助于更快地获取信息。 索引的一个主要目的就是加快检索表中数据的方法,亦即能协助信息搜索者尽快的找到符合限制条件的记录ID的辅助数据结构。 形象来说就像是新华字典的偏旁部首索引,再某个值域的就直接可以知道从哪里开始找,而不用全表遍历 ...原创 2020-05-06 22:05:47 · 263 阅读 · 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 · 132 阅读 · 0 评论