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 · 567 阅读 · 0 评论 -
MySQL count(*)总结
对于myisam存储引擎,使用count(*)会非常迅速,因为其存储引擎不支持行级锁,所以维护一个总条数的代价较小,其在存储引擎内部存储了总行数这个值,所以很容易就得出count(*)对于innodb存储引擎,因为支持行级锁,一张表会有多个事务进行并发修改操作,每个事务都会影响总行数,所以为了不影响并发性,其存储引擎内部并没有维护这个总行数,自然count(*)需要遍历表中的每个记录来得出,所原创 2014-10-17 11:53:05 · 754 阅读 · 1 评论 -
MySQL数据库的隔离级别
问题:innodb ,如果一个session A开启事务读一条数据,另一个session B开启事务更新这条数据,那么B能够顺序提交吗?A又读到的是什么值呢?经过测试,结果为,B可以立即更改这个记录,但是A始终都读的是B修改前的数据,即使B已经提交了。A只有提交了之后,再select,就看到B更新之后的数据了MYSQL有四种隔离级别:1、未提交读就是可以读到别人原创 2014-10-17 12:01:18 · 618 阅读 · 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 · 487 阅读 · 0 评论 -
如何在一台机器上运行两个MySQL实例
1、准备两个不同的my.cnf文件,原创 2014-10-20 17:04:46 · 608 阅读 · 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 · 494 阅读 · 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 · 852 阅读 · 0 评论
分享