1、MySQL中varchar和char的区别
- ① 定长和变长
char表示定长,规定多少字长则存储多少字长,超过的长度只能截取对应的长度进行存储,子长不够空格补齐;
varchar表示在规定字长之内,有多少存多少,无需补齐;超出的部分舍去即可。
- ②存储容量不同
char:最多存放255个字符,与编码无关;
varchar最多存放65532个字符。
2、表级锁、行级锁、页级锁
- 表级锁
特点:MySQL各存储引擎最大颗粒度的锁定机制。
优点:实现逻辑简单,带来的系统负面影响最小,获取锁、释放锁的速度很快
缺点:出现锁定资源争用的概率很高
使用场景:以查询为主(只有少量按索引条件更新数据)的应用,如web应用,MyISAM,MEMORY,CSV等一些非事务性存储引擎。
- 行级锁
特点: 锁定颗粒度最小
优点: 发生同步资源争用的概率也最小,能够尽可能大地实现并发处理能力
缺点: 每次获取锁和释放锁需要做的事也更多,最容易发生死锁
使用场景: 大量按索引条件并发更新少量不同数据,同时又有并发查询的应用,如一些在线事务处理系统(OLTP),InnoDB
- 页级锁
特点: 基于以上两者之中
使用场景: BerkeleyDB存储引擎