mysql体系结构
mysql支持的存储引擎
MySQL中的数据用各种不同的技术存储在文件(或者内存,因为表中的记录需要通过内存和CPU产生作用)中。这其中的每一种技术都使用不同的存储机制、索引技巧、锁定水平并且最终提供广泛的不同的功能和能力。通过选择不同的技术,你能够获得额外的速度或者功能,从而改善你的应用的整体功能。这些不同的技术以及配套的相关功能在MySQL中被称作存储引擎(也称作表类型)。MySQL默认配置了许多不同的存储引擎,可以预先设置或者在MySQL服务器中启用。你可以选择适用于服务器、数据库和表格的存储引擎,以便在选择如何存储你的信息、如何检索这些信息以及你需要你的数据结合什么性能和功能的时候为你提供最大的灵活性。选择如何存储和检索你的数据的这种灵活性是MySQL为什么如此受欢迎的主要原因。其它数据库系(包括大多数商业选择)仅支持一种类型的数据存储。遗憾的是,其它类型的数据库解决方案采取的“一个尺码满足一切需求”的方式意味着你要么就牺牲一些性能,要么你就用几个小时甚至几天的时间详细调整你的数据库。使用MySQL,我们仅需要修改我们使用的存储引擎就可以了。MySQL数据库支持的存储引擎我们可以使用show engines指令查看MySQL数据库支持的存储引擎。
使用show engines可以查看mysql支持的存储引擎
关于数据库存储引擎的一个恰当的比喻是:汽车都能实现行驶的功能,但是SVV和普通轿车具有不同的发动机结构。
常用存储引擎的区别
这些存储引擎的主要区别在于:是否支持大对象、是否支持事物、索引不同、锁结构不同。这些区别导致访问效率和适用范围大大不同。具体信息如下:
InnoDB与MyISAM的最大不同有两点:一是支持事务(TRANSACTION);二是采用了行级锁。
连接mysql的方式
这个和进程间的通信相似,主要包括 TCP/IP套接字、命名管道等
mysql事物管理
mysql锁
这其中还涉及到行锁、业锁、表锁,请参考MySQL学习之——锁(行锁、表锁、页锁、乐观锁、悲观锁等)