数据库原理

1.MYISAM与InnoDB搜索引擎原理

MyIsam引擎使用B+树作为索引结构,叶子节点data域存放的是数据记录的地址.索引文件和数据文件是分开的,索引文件只存放索引,数据文件只存放数据,其索引方式是非聚集的.

InnoDB引擎也是使用B+树作为索引结构.但是它的主键索引也就是一级索引是与数据放在一个文件中的.其索引结构是聚集索引,因为数据本身的物理顺序与索引的逻辑顺序相同.为此,innoDB建表要求一定要有主键.

稠密索引和稀疏索引的区别:稀疏索引没有为每个数据都创建一个索引

联合索引,最左前缀原则

(col1,col2,col3)相当于创建了(col1),(col1,col2),(col1,col2,col3)这三个索引根据列名挑选最严格的索引.

选择性:不重复数占所有记录的比例

分表分库:水平拆分和垂直拆分

validationQuery:用来验证数据库连接的查询语句,至少是返回一条数据的查询语句

共享锁,排他锁

隔离级别:

read uncommit:读不加锁,写加共享锁,会产生脏读,幻读

read commit:读加共享锁,写加排他锁,但不加间隙锁(防止不可重复读)

repeatable read(innoDB默认的)读加共享锁,写加间隙排它锁.innoDB做了特殊处理可以避免幻读

serialization:会给整张表加锁,强一致,效率低

innoDB的锁:

MVCC

LBCC