![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据库
yulin6
写不出来咋能说出来?
展开
-
说一下mysql的锁有哪些?
mysql中锁主要分为乐观锁和悲观锁,乐观锁需要自己去实现通常都是加版本号。悲观锁在mysql中是有具体实现的,而且实现的种类比较多。 首先悲观锁可以分为行锁和表锁: 行锁分为共享锁(S)和排它锁(X) 排它锁则分为: 在RR隔离级别下:分为记录锁、间隙锁、临健锁(记录锁+间隙锁) ...原创 2021-12-28 17:52:59 · 1144 阅读 · 0 评论 -
MVCC原理
MVCC,全称Multi-Version Concurrency Control,即多版本并发控制。MVCC是一种并发控制的方法,一般在数据库管理系统中,实现对数据库的并发访问,在编程语言中实现事务内存。 从一个例子开始,两个客户端(c1,c2同时对一个表进行操作)同时连接数据库,同时关闭自动提交(set autocommit = 0)。例1:同时开启事务(begin)->c1不做操作->c2更新表数据->c2提交(commit)->c1...原创 2021-10-20 14:25:01 · 67 阅读 · 0 评论 -
redis的缓存击穿、穿透、雪崩及分布式锁
1、击穿 出现原因:一个key过期或未过期但是被淘汰算法(LRU,LFU)清除。正巧这时发生了高并发访问这个key时,会造成击穿redis从而去访问DB,给DB造成非常大的压力。 解决方案:由于redis是单线程,的当大量并发请求到来时在redis中也是需要排队执行,当getkey时此时对于返回null的结果再次请求setnx操作,相当于时加了一把锁,拿到锁的请求去访问DB从而更新key获取,其他返回为null的请求继续获取这把锁,如果获取不到锁就睡眠短...原创 2021-10-19 22:19:34 · 144 阅读 · 0 评论 -
Mysql为什么要使用B+树作为索引?
如果使用hash作为索引,由于hash是散列无序的,所以如果使用hash若是对范围进行检索的话就需要遍历寻找,这就违背了索引的快速检索的概念。 如果采用二叉树作为索引的话,索引数量足够多,那么二叉树的深度将会足够深,如果要查找的数据在树的最深一层的话那无疑会增加非常大的IO消耗。因此引入了B树的,相对于二叉树的纵向延伸,B树的横向延伸无疑会减少非常多的IO消耗。而B树对于索引存储时需要存储索引的key,指针以及数据,假如以innodb为例,每块大小为16...原创 2021-10-18 16:31:20 · 57 阅读 · 0 评论 -
centos7 mysql数据库安装和配置
一、系统环境yum update升级以后的系统版本为[root@yl-web yl]# cat /etc/redhat-release CentOS Linux release 7.1.1503 (Core) 二、mysql安装一般网上给出的资料都是#yum install mysql#yum install mysql-server#yum in原创 2017-09-16 13:54:18 · 141 阅读 · 0 评论 -
mysql latin1 乱码变中文
convert(unhex(hex(convert(name using latin1))) using utf8) as name 一段神奇的语句原创 2017-09-12 13:52:31 · 5575 阅读 · 3 评论