InnoDB存储引擎中的锁

我们都知道事务的4个特性,即 ACID。mysql 数据库使用加锁的方式来实现其中的 I (Isolation隔离性)。对于 InnoDB 存储引擎来说,它 支持行锁和表锁 ,而且行锁是由存储引擎通过给索引记录加锁来实现的,并且 InnoDB 默认是加行锁。好处就是锁定颗粒度小,发生锁冲突的概率低,并发度高

阅读更多

mysql日志文件

bin log

二进制日志 ( binary log) 是 Server 层的日志,记录了对 mysql 数据库执行更改的所有操作,但是不包括 SELECT和SHOW这类操作,因为这类操作对数据本身并没有修改。然而,若操作本身并没有导致数据库发生变化,那么该操作可能也会写入二进制日志。例如执行下列未更改的sql:

阅读更多

mysql索引

索引原理

和字典、通讯录原理一样,索引的目的在于提高查询效率,通过不断的缩小数据的查找范围来筛选出最终想要的结果。比如要查找 “张三” 这个人,会先定位在姓 “张” 的人中,然后再从中查找 “三” 这个名。如果没有索引,那么可能需要把整个通讯录都翻一遍才能找到想要的。

阅读更多

debug调试Mysql源码

再上一篇的事务隔离级别中说了mysql是通过两个隐藏列来实现的,后来又看了一些相关文章,发现好像和《高性能Mysql》说的有点不一样。mysql的mvcc是通过Read View和
Undo log来实现的,read view来判断数据行是否可读,undo log用来找到最近的可见版本。为了搞清楚内部是如何实现的(虽然不一定看的懂),所以想debug看下read view是如何生成的。

阅读更多

远程连接MySql

远程访数据库

1
2
3
4
5
6
7
- 1、mysql -u root -p

- 2、use mysql;

- 3、update user set host='%' where user='用户名';

- 4、flush privileges;
阅读更多