常见的存储印象有MYISAM和INNODB:
注:上述图片来自:https://docs.oracle.com/cd/E17952_01/mysql-5.5-en/storage-engines.html网站。
1 其中比较关键的是transactions,是一个重要的概念,有一个重要的特性原子性:一个事务是由多个小的步骤组合而成的,这些步骤要么统统全部完成,要么全不不做,必须作为一个整体出现。
2 锁(locking granuarity),myisam只支持表级锁(影响其并发),而innodb可以支持行级锁。
3 MVCC,MVCC是很重要的特点,叫多版本并发控制机制,是为了解决并发的。
4 myisam不支持外键(forgin key support),innodb支持外键。
5 myisam只支持压缩行格式才支持(有一定的条件),而innodb是支持所有的压缩的。
6 myIsam每一个表都会对应独立的三个文件:frm(表格式定义)、MYD(数据文件)、MYL(索引文件)
7 在innodb的数据库中不是三个文件,默认情况下是两个文件中(新版本中是两个,旧版本需要增加innodb_file_per_table=ON),ftm和ibd文件(数据库和索引放的文件)独立的文件
其他存储引擎
Performance_Schema:Performance_Schema数据库使用。
BLACKHOLE:黑洞存储引擎接受但不存储数据,检索总是返回一个空集。该功能可用于分布式数据库设计,数据自动复制,但不是本地存储。
//数据库的内容要同步到其他数据库中(数据库的数量大于1),这样有自动备份的功能,主服务器宕机,备用的就可以正常的起来使用。主服务器会负担其压力(访问和同步的压力),会造成系统瓶颈。可以让其负载到一台机器上,减轻其压力。中间的那台服务器不是存储到磁盘中,使用blackhole他的数据在内存中放着(断电就丢了),传输到其他地方。