
mysql
梆子大鼓
这个作者很懒,什么都没留下…
展开
-
mysql redolog和undolog
1 undo1.1 undo是什么undo日志用于存放数据修改被修改前的值,假设修改 tba 表中 id=2的行数据,把Name=‘B’ 修改为Name = ‘B2’ ,那么undo日志就会用来存放Name='B’的记录,如果这个修改出现异常,可以使用undo日志来实现回滚操作,保证事务的一致性。对数据的变更操作,主要来自 INSERT UPDATE DELETE,而UNDO LOG中分为两...原创 2019-06-17 09:13:15 · 561 阅读 · 0 评论 -
MySQL数据库事务MVCC
Innodb只是借了MVCC这个名字,提供了读的非阻塞而已。https://m.imooc.com/article/172901.单纯加锁是怎么实现 read committed 的?从此隔离级别效果入手:事务只能读其他事务已提交的的记录。数据库事务隔离级别的实现,InnoDB 支持行级锁,写时加的是行级排他锁(X lock),那么当其他事务访问另一个事务正在update (除select...转载 2019-06-15 14:06:27 · 431 阅读 · 0 评论 -
单个索引和联合索引
使用联合索引效率更高;当创建(a,b,c)联合索引时,相当于创建了(a)单列索引,(a,b)联合索引以及(a,b,c)联合索引想要索引生效的话,只能使用 a和a,b和a,b,c三种组合;当然,我们上面测试过,a,c组合也可以,但实际上只用到了a的索引,c并没有用到!需要加索引的字段,要在where条件中...原创 2019-04-16 15:33:49 · 535 阅读 · 0 评论 -
mysql什么情况下会触发表锁
原文链接https://www.cnblogs.com/sessionbest/articles/8689082.html在上面讲到的并发事务处理带来的问题中,“更新丢失”通常是应该完全避免的。但防止更新丢失,并不能单靠数据库事务控制器来解决,需要应用程序对要更新的数据加必要的锁来解决,因此,防止更新丢失应该是应用的责任。“脏读”、“不可重复读”和“幻读”,其实都是数据库读一致性问题,必须由...转载 2019-04-15 14:55:47 · 4115 阅读 · 0 评论 -
mysql该如何避免全表扫描(转)
全表扫描是数据库搜寻表的每一条记录的过程,直到所有符合给定条件的记录返回为止。通常在数据库中,对无索引的表进行查询一般称为全表扫描;然而有时候我们即便添加了索引,但当我们的SQL语句写的不合理的时候也会造成全表扫描。以下是经常会造成全表扫描的SQL语句及应对措施:使用null做为判断条件如:select account from member where nickname = null;建...转载 2019-04-15 13:35:01 · 607 阅读 · 0 评论 -
创建数据库关于时间的小技巧
`create_time` timestamp not null default current_timestamp comment '创建时间',`update_time` timestamp not null default current_timestamp on update current_timestamp comment '修改时间',这样来创建:创建时间和修改时间这两个字段的时...原创 2019-04-07 21:30:10 · 291 阅读 · 0 评论 -
centos第一次安装mysql的正确步骤,不再踩坑
1、官方安装文档http://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en/2、下载 Mysql yum包http://dev.mysql.com/downloads/repo/yum/下载到本地再上传到服务器,或者使用wget 直接下载wget http://repo.mysql.com/mysql57-community-releas...转载 2019-04-07 19:17:43 · 201 阅读 · 0 评论 -
一份基本的mysql规范
一、命名规范1、所有数据库对象名称必须使用小写字母并用下划线分割;2、临时库表必须以tmp_为前缀并以日期作为后缀。备份表必须以bak_为后缀并以日期为后缀3、所有存储相同数据的列明和列类型必须一致(一般作为关联列,如果查询是关联列类型不一致会自动进行数据类型隐式转换,会造成列上的索引失效。)二、基本设计规范1、所有表必须使用innodb存储引擎(没有特殊要求,即innodb无法满足的功...原创 2019-04-04 22:53:17 · 111 阅读 · 0 评论 -
mysql 各种锁的作用
①在mysql中有表锁,LOCK TABLE my_tabl_name READ; 用读锁锁表,会阻塞其他事务修改表数据。LOCK TABLE my_table_name WRITe; 用写锁锁表,会阻塞其他事务读和写。②Innodb引擎又支持行锁,行锁分为共享锁,一个事务对一行的共享只读锁。排它锁,一个事务对一行的排他读写锁。③这两中类型的锁共存的问题考虑这个例子:事务A锁住了表...原创 2019-02-28 16:22:30 · 2023 阅读 · 0 评论