MySQL
臭脚大仙
不忘初期
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
MySQL中关于join的一个误区
我估计应该有一部分MySQL的小白用户跟我一样,以为 A left join B on a.key=b.key and condition 等价于 A left join B on a.key = b.key where condition 假设我们有两张表,分别存放某个对象的信息1+信息2、信息3+信息4,表结构如下:原创 2014-11-18 08:35:32 · 538 阅读 · 0 评论 -
MySQL count(*)总结
对于myisam存储引擎,使用count(*)会非常迅速,因为其存储引擎不支持行级锁,所以维护一个总条数的代价较小,其在存储引擎内部存储了总行数这个值,所以很容易就得出count(*) 对于innodb存储引擎,因为支持行级锁,一张表会有多个事务进行并发修改操作,每个事务都会影响总行数,所以为了不影响并发性,其存储引擎内部并没有维护这个总行数,自然count(*)需要遍历表中的每个记录来得出,所原创 2014-10-17 11:53:05 · 728 阅读 · 1 评论 -
MySQL数据库的隔离级别
问题: innodb ,如果一个session A开启事务读一条数据,另一个session B开启事务更新这条数据,那么B能够顺序提交吗?A又读到的是什么值呢? 经过测试,结果为,B可以立即更改这个记录,但是A始终都读的是B修改前的数据,即使B已经提交了。 A只有提交了之后,再select,就看到B更新之后的数据了 MYSQL有四种隔离级别: 1、未提交读 就是可以读到别人原创 2014-10-17 12:01:18 · 601 阅读 · 0 评论 -
关于MySQL中的死锁
锁分为两种情况,一种是死锁,一种是锁等待,通常我们说的MySQL"死锁",指的是锁等待。 事务1锁定记录A 事务2锁定记录B 事务1尝试更新记录B(这里是锁等待,等待事务2提交,释放B) 事务2尝试更新记录A(这里是死锁,mysql会自动检测,并报ERROR 1213 (40001): Deadlock found when trying to get lock; try原创 2014-10-17 11:57:46 · 469 阅读 · 0 评论 -
如何在一台机器上运行两个MySQL实例
1、准备两个不同的my.cnf文件,原创 2014-10-20 17:04:46 · 588 阅读 · 0 评论 -
MySQL基础之左连接、右连接、内连接、外连接
有2张表 t1 和 t2: mysql> select * from t1; +------+ | a | +------+ | 1 | | 2 | | 3 | +------+ 3 rows in set (0.00 sec) mysql> select * from t2; +------+------+ | a | b | +------+------原创 2014-11-27 12:47:22 · 475 阅读 · 0 评论 -
MySQL是如何优化WHERE条件的
有些时候,我们经常会改写一些SQL,通过牺牲SQL的可读性来优化SQL的执行速度,但是大部分情况下,我们这么做是多余的,而且是不可取的,因为MySQL自身就完成了这项工作所以,我们需要多了解了解MySQL本身是如何进行SQL改写工作的。 1、去掉不必要的括号 ((a AND b) AND c OR (((a AND b) AND (c AND d)))) -> (a AND b AND原创 2015-03-05 21:26:52 · 827 阅读 · 0 评论
分享