码迷,mamicode.com
首页 > 数据库 > 月排行
InnoDB,5项最佳实践,知其所以然?
缓存讲了一个月《缓存架构,一篇足够》。今天,开始写数据库。第一篇,说说MySQL两个最常用的存储引擎,MyISAM和InnoDB。照自己的理解,把一些知识点总结出来,不只说知识点,多讲“为什么”。一、关于count(*)知识点:MyISAM会直接存储总行数,InnoDB则不会,需要按行扫描。潜台词是,对于selectcount(*)fromt;如果数据量大,MyISAM会瞬间返回,而InnoDB则
分类:数据库   时间:2020-11-17 12:02:15    阅读次数:8
InnoDB行锁,如何锁住一条不存在的记录?
《InnoDB,5项最佳实践,知其所以然?》发布后,不少同学留言希望讲讲MySQL的InnoDB行锁机制。要细聊MySQL的行锁,难以避免的要从事务的四种隔离级别说起。四种隔离级别,又脱不开聊读脏,不可重复读,读幻象等问题。事务隔离级别,行锁机制等都比较垂直,应用开发中大部分同学都用不到,不确定是否大部分朋友都感兴趣。今天,先抛出一个问题,如果大家确定对这类话题感兴趣的话,后续我花时间细聊这一系列
分类:数据库   时间:2020-11-17 12:02:33    阅读次数:10
InnoDB并发如此高,原因竟然在这?
《InnoDB行锁,如何锁住一条不存在的记录?》埋了一个坑,没想到评论反响剧烈,大家都希望深挖下去。原计划写写InnoDB的锁结束这个case,既然呼声这么高,干脆全盘系统性的写写InnoDB的并发控制,锁,事务模型好了。体系相对宏大,一篇肯定写不完,容我娓娓道来,通俗地说清楚来龙去脉。一、并发控制为啥要进行并发控制?并发的任务对同一个临界资源进行操作,如果不采取措施,可能导致不一致,故必须进行并
分类:数据库   时间:2020-11-17 12:02:54    阅读次数:12
InnoDB,能将数据存储在DVD里?
MySQL5.6,应该实现在最流行的版本吧?很遗憾有一些功能一直没有,例如:哈希索引T-tree索引原生高可用auto-sharding...画外音:你最希望看到支持什么特性?但,5.6版本中,InnoDB有些有意思的特性,或许是大伙还不清楚的。从这个版本开始,可以支持全文索引了。altertable可以不拷贝表了,且不阻塞写操作,onlineDDL,酷炫吧。画外音:并不是所有的altertabl
分类:数据库   时间:2020-11-17 12:03:10    阅读次数:10
挖坑,InnoDB的七种锁
Case1MySQL,InnoDB,默认的隔离级别(RR),假设有数据表:t(idPK,name);数据表中有数据:10,shenjian20,zhangsan30,lisi事务A先执行,还未提交:insertintotvalues(11,xxx);事务B后执行:insertintotvalues(12,ooo);问:事务B会不会被阻塞?Case2MySQL,InnoDB,默认的隔离级别(RR),
分类:数据库   时间:2020-11-17 12:03:25    阅读次数:13
插入InnoDB自增列,居然是表锁?
《挖坑,InnoDB的七种锁》初步说明了InnoDB中,会使用七种不同类型的锁,今天就介绍其中的第一种,自增锁(Auto-incLocks)。一,案例说明MySQL,InnoDB,默认的隔离级别(RR),假设有数据表:t(idAUTO_INCREMENT,name);数据表中有数据:1,shenjian2,zhangsan3,lisi事务A先执行,还未提交:insertintot(name)val
分类:数据库   时间:2020-11-17 12:03:43    阅读次数:13
cisco和h3c通过access口连接
cisco和华三交换机连接,由于生成树协议的差别,不太容易连接,所以写下来标记一下。生产环境交换机连接有两种(可能还有别种)方式,一种是trunk,一种是access这里只讲access,运维上越简单越直接我感觉越好,哈哈哈例子cisco2960,h3cE528(5120,5130)也都行,因为我是把华三交换机当傻瓜去配的cisco2960通过G0/2连接H3C的G1/0/25,G0/1接的是别的
分类:数据库   时间:2020-11-17 12:04:01    阅读次数:8
InnoDB,select为啥会阻塞insert?
MySQL的InnoDB的细粒度行锁,是它最吸引人的特性之一。但是,如《InnoDB,5项最佳实践》所述,如果查询没有命中索引,也将退化为表锁。InnoDB的细粒度锁,是实现在索引记录上的。一,InnoDB的索引InnoDB的索引有两类索引,聚集索引(ClusteredIndex)与普通索引(SecondaryIndex)。InnoDB的每一个表都会有聚集索引:(1)如果表定义了PK,则PK就是聚
分类:数据库   时间:2020-11-17 12:04:17    阅读次数:11
1分钟了解MyISAM与InnoDB的索引差异
《数据库索引,到底是什么做的?》介绍了B+树,它是一种非常适合用来做数据库索引的数据结构:(1)很适合磁盘存储,能够充分利用局部性原理,磁盘预读;(2)很低的树高度,能够存储大量数据;(3)索引本身占用的内存很小;(4)能够很好的支持单点查询,范围查询,有序性查询;数据库的索引分为主键索引(PrimaryInkex)与普通索引(SecondaryIndex)。InnoDB和MyISAM是怎么利用B
分类:数据库   时间:2020-11-17 12:04:36    阅读次数:11
4种事务的隔离级别,InnoDB如何巧妙实现?
事务ACID特性,其中I代表隔离性(Isolation)。什么是事务的隔离性?隔离性是指,多个用户的并发事务访问同一个数据库时,一个用户的事务不应该被其他用户的事务干扰,多个并发事务之间要相互隔离。一个事务怎么会干扰其他事务呢?咱们举例子来说明,假设有InnoDB表:t(idPK,name);表中有三条记录:1,shenjian2,zhangsan3,lisicase1事务A,先执行,处于未提交的
分类:数据库   时间:2020-11-17 12:05:39    阅读次数:10
InnoDB,快照读,在RR和RC下有何差异?
昨天挖了一个坑《InnoDB的快照读,到底和什么相关?》,今天来填坑。为了保证文章知识体系的完整性,先简单解释下快照读,读提交,可重复读。快照读(SnapshotRead)MySQL数据库,InnoDB存储引擎,为了提高并发,使用MVCC机制,在并发事务时,通过读取数据行的历史数据版本,不加锁,来提高并发的一种不加锁一致性读(ConsistentNonlockingRead)。读提交(ReadCo
分类:数据库   时间:2020-11-17 12:07:32    阅读次数:8
超赞,InnoDB调试死锁的方法!
近期写了不少InnoDB锁相关的文章,不少小伙伴问,如何在MySQL终端模拟并发事务,如何复现之前文章中的案例。今天,咱们一起动起手来,模拟并发事务的互斥与死锁。【事前准备】安装MySQL服务端安装MySQL客户端安装能够模拟多个并发事务的终端画外音:楼主使用的是MySQL5.6,官方客户端mysql,模拟并发终端用的SecureCRT。【配置的确认与修改】要测试InnoDB的锁互斥,以及死锁,有
分类:数据库   时间:2020-11-17 12:07:49    阅读次数:11
MySQL不为人知的主键与唯一索引约束
今天和大家简单聊聊MySQL的约束主键与唯一索引约束:PRIMARYKEYandUNIQUEIndexConstraints文章不长,保证有收获。触发约束检测的时机:insertupdate当检测到违反约束时,不同存储引擎的处理动作是不一样的。如果存储引擎支持事务,SQL会自动回滚。例子:createtablet1(idint(10)primarykey)engine=innodb;inserti
分类:数据库   时间:2020-11-17 12:08:09    阅读次数:15
关于MySQL内核,一定要知道的!
近一个多月,写了一些MySQL内核的文字,稍作总结,希望对大家有帮助。1.《InnoDB,为何并发如此之高?》文章介绍了:(1)什么是并发控制;(2)并发控制的常见方法:锁,数据多版本;(3)redo,undo,回滚段的实践;(4)InnoDB如何利用回滚段实现MVCC,实现快照读。结论是,快照读(SnapshotRead),这种不加锁的读,是InnoDB高并发的核心原因之一。番外篇:《快照读,在
分类:数据库   时间:2020-11-17 12:10:05    阅读次数:12
MySQL主从延时这么长,要怎么优化?
MySQL主从复制,读写分离是互联网常见的数据库架构,该架构最令人诟病的地方就是,在数据量较大并发量较大的场景下,主从延时会比较严重。为什么主从延时这么大?答:MySQL使用单线程重放RelayLog。应该怎么优化,缩短重放时间?答:多线程并行重放RelayLog可以缩短时间。多线程并行重放RelayLog有什么问题?答:需要考虑如何分割RelayLog,才能够让多个数据库实例,多个线程并行重放R
分类:数据库   时间:2020-11-17 12:10:49    阅读次数:12
oracle之用户授权
--授予dba权限 grant dba to userName --回收dba权限 revoke dba from userName --授予用户登录数据库的权限: grant create session to userName; --授予用户操作表空间的权限: grant unlimited t ...
分类:数据库   时间:2020-11-17 12:15:35    阅读次数:15
Zabbix告警:SQL Instance MSSQLSERVER: Could not allocate a new page
Zabbix的监控出现告警,具体的告警信息如下:“SQL Instance MSSQLSERVER: Could not allocate a new page”和“D::Disk space is low(used > 80%)" 第一个告警是Zabbix template for Microso ...
分类:数据库   时间:2020-11-17 12:16:53    阅读次数:16
线上erp应用产品和数据库版本支持的生命周期
关于线上erp应用产品和数据库版本支持的生命周期到期后 关于erp应用产品和数据库版本支持的生命周期到期后将面临是否升级的问题,因各公司情况不同而不同 1、 前提:现在使用的线上erp 应用产品版本和erp数据库版本的生命周期即将到期,到期之后,线上的产品还可以继续使用,只是oracle不提供官方支 ...
分类:数据库   时间:2020-11-17 12:18:04    阅读次数:13
python | MySQL全面查询的正则匹配
概述 上一章 查询的过滤条件,我们了解了MySQL可以通过 like % 通配符来进行模糊匹配。同样的,它也支持其他正则表达式的匹配,我们在MySQL中使用 REGEXP 操作符来进行正则表达式匹配。用法和like相 似,但又强大很多,能够实现一些很特殊的、复杂的规则匹配。正则表达式使用REGEXP ...
分类:数据库   时间:2020-11-17 12:27:26    阅读次数:12
MySql 时间间隔 与 当前时间5分钟之前
MySql 时间间隔 与 当前时间5分钟之前 本文链接:https://blog.csdn.net/a470740128/article/details/84472854 select * from tb_user where signtime between date_add(now(), int ...
分类:数据库   时间:2020-11-17 12:27:48    阅读次数:12
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!