
mysql
文章平均质量分 88
彩色贝
学无止境,加油
展开
-
聚簇索引&非聚簇索引
聚簇索引:将数据存储与索引放到了一块,索引结构的叶子节点保存了行数据非聚簇索引:将数据与索引分开存储,索引结构的叶子节点指向了数据对应的位置在innodb中,在聚簇索引之上创建的索引称之为辅助索引,非聚簇索引都是辅助索引,像复合索引、前缀索引、唯一索引。辅助索引叶子节点存储的不再是行的物理位置,而是主键值,辅助索引访问数据总是需要二次查找1.InnoDB使用的是聚簇索引,将...原创 2020-01-02 17:49:47 · 746 阅读 · 0 评论 -
数据库主从一致性架构优化4种方法
今天看到一篇非常不错的文章,DB主从一致性架构优化4种方法,整理一下分享给大家,希望对大家学习有所帮助。一、需求缘起大部分互联网的业务都是“读多写少”的场景,数据库层面,读性能往往成为瓶颈。如下图:业界通常采用“一主多从,读写分离,冗余多个读库”的数据库架构来提升数据库的读性能。这种架构的一个潜在缺点是,业务方有可能读取到并不是最新的旧数据:(1)系统先对DB-master进行了一个写操作...转载 2018-07-27 14:07:20 · 2813 阅读 · 0 评论 -
Lock wait timeout exceeded; try restarting transaction
问题出现的原因:假设有两个事务A和事务B,他们两个都存在update 同一条记录,A 先修改,但是没有提交事务,B也想修改但是一直等,直到等到了超过了innodb_lock_wait_timeout所设置的时间,就会爆出此异常模仿异常的出现: 创建一个表:CREATE TABLE `emp` ( `id` int(4) NOT NULL, `deptno` int(4) DEF...原创 2019-02-23 23:42:14 · 13182 阅读 · 2 评论 -
drop、truncate、delete区别与联系
(1)DELETE语句执行删除的过程是每次从表中删除一行,并且同时将该行的删除操作作为事务记录在日志中保存以便进行进行回滚操作。TRUNCATETABLE则一次性地从表中删除所有的数据并不把单独的删除操作记录记入日志保存,删除行是不能恢复的。并且在删除的过程中不会激活与表有关的删除触发器。执行速度快。(2)表和索引所占空间。当表被TRUNCATE后,这个表和索引所占用...转载 2019-04-29 12:48:51 · 404 阅读 · 0 评论 -
INSERT ... ON DUPLICATE KEY UPDATE产生death lock 原因
线上收到了一个报警,主要内容如下:异常:Error updating database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLTransactionRollbackException:,原因:最终锁定是和一个插入或者更新的语句有关,INSERT ... ON DUPLICATE KEY UPDATE结果:这个语句可能导致death ...原创 2019-08-03 17:55:03 · 1059 阅读 · 0 评论