Mysql语句
暂时略过
Mysql中select的语句的执行顺序
1、from
2、on
3、join 包括(left、right、inner)
4、where
5、group by
6、having
7、select
8、distinct
9、order by
10、limit
Mysql中的存储引擎了解过吗
了解过两种:MYISAM和Innodb
MyISAM特性:
1、表锁,因为查询数据是锁表的操作,即使操作一条记录也会锁住整个表,不适合高并发的操作。
2、不支持事务
3、不支持外键
4、缓存,只缓存索引
主要面向OLAP(Online Analytical Processing,在线分析处理)方面的应用
Innodb:默认是mysql的存储引擎
1、行锁,操作时只锁住某一行,不对其它行有影响,适合高并发的操作
2、支持事务
start transaction、commit、rollback
3、支持外键
4、索引数据都缓存,性能要求较高
主要面向OLTP(Online Transaction Processing,在线事务处理)方面的应用
Mysql的事务
事务的基本要素
ACID
原子性(Atomicity)
一致性(Consistency)
隔离性(Isolation)
持久性(Durability)
事务的并发问题
脏读:事务A读取事务B更新的数据,但是事务B回滚了事务,导致事务A读取的事务是脏数据
不可重复读:事务A多次读取同一数据,事务B在事务A多次读取的过程中对数据进行了更新并提交,导致事务A多次读取统一数据时,结果不一致
幻读:事务A根据某种规则查询出了数据,事务B以insert 或者 update的方式修改了事务A查询出的数据集并修改然后提交了。
如何解决事务的并发问题–事务的隔离级别
事务的隔离级别
读未提交:解决不了事务的并发问题
不可重复度:可以解决脏读
可重复度:可以解决不可重复读
串行化:锁表,可以解决幻读一些列问题
备注: Mysql默认的数据库隔离级别:可重复读