平衡二叉树,就是每个节点左右两边的差距不能超过1,(高度不能超过1)
索引其实和表数据不是一一对应的,只是方便理解看着一一对应而已,它其实存储的是关键字,指向数据的指针
MyISAM锁机制查询的时候会加读锁,修改数据的时候加写锁,在加读锁的时候不能进行写锁,当加写锁的时候不能进行读锁,当加读锁的时候可以进行读.
但加了排他锁的时候读的时候也不能进行读了
MyISAM是表级锁,对表进行上锁,InnoDB可以对表上锁,也可以对行进行上锁.
InnoDB的select是不加锁的,需要手动加共享锁,它只是针对这一行.修改别的行不会加锁的.
如果两个都是读操作的话,就算加了共享锁也没关系,依然能读取到数据.
当操作的不是索引字段的时候,会建立表级锁,当查询修改的是索引字段的时候会走行级锁
增删改操作多的使用InnoDB要求事务的,可靠性要求高也使用它
查询频率高,对count频率高,增删改少没有事务使用MyISAM
数据库四大特性(ACID)
原子性:数据要么都成功,要么都失败
一致性:比如银行转账无论怎么转钱不能多了或者少了
隔离性:在多个事务之间,事务和事务之间不能相互影响.
持久性:数据一旦提交就得永久的保存到数据库中持久化.