引擎:
|——MyISAM 在5.0之前官方默认的引擎
|——InnoDB 5.0之后
为什么要进行加锁
高并发问题:
简单举例:比如买火车票,当一个人要去平台买票,如果A在查票的时候发现还有一张票,正好B这时候也想买这张票,B查票时发现这张票没有被卖出,由于A先付款这张票就被A买走了,但是B查之前票还没有被卖出,B也买了,就出现一张票被卖了两次。
因此我们要进行加锁的操作。
加锁时,其他人访问不了。
事务:
(1)是什么:
数据库对象
(2)作用:
为了保证数据完整性,安全性,可靠性
整个事件中要使用到的mysql语句,要么全部成功,要么全部失败。
InnoDB优点:
(1)InnoDB支持事务,MyISAM不支持事务。
(2)InnoDB支持外键,MyISAM不支持。
(3)InnoDB是聚集索引,通过主键索引效率很高,加快了查询速度和效率。
(4)InnoDB使用行锁,查询更新效率高。
InnoDB缺点:
(1)InnoDB聚合索引,占据数据库存储空间,如果索引列发生数据变化,索引也必须更新。
(2)InnoDB速度慢。
(3)InnoDB使用行锁,批量插入速度慢。
MyISAM优点:
(1)MyISAM是非聚合索引,数据文件是分离的。
(2)MyISAM用一个变量保存了整个表的行数,速度很快。
(3)占存储空间小。
MylSAM缺点:
(1)MyISAM使用表锁,一个更新语句会锁住整张表,
导致其它查询和更新都会被阻塞,因此并发访问受限。