林子雨老师团队举行本学期第1次小组讨论会

数据库实验室林子雨老师团队2014年春季学期第一次小组讨论会会议纪要

会议时间:2014年3月8日(星期六)上午9点到12点

会议地点:厦门大学海韵园科研二号楼303室

与会者:林子雨、赖明星、刘颖杰、叶林宝、蔡珉星、李雨倩、谢荣东、罗道文

会议纪要撰写:叶林宝

2014年3月8日(星期六)上午9点到11点30分,林子雨老师团队举行本学期第1次小组讨论会,刘颖杰同学为大伙详细地讲述了“MySQL索引以及锁的应用”的相关知识。由于刘颖杰同学幽默风趣的讲述方式,本次会议显得格外轻松、欢快。以下为会议主要内容:

(1) MySQL索引共有五种类别,分别是:B树索引(B+树)、哈希索引、空间数据索引、全文索引、其他类型索引。

(2) 关于索引方面,主要讲解的是B树索引和哈希索引,颖杰同学通过举例说明如何利用B树索引和哈希索引进行记录的查找,并阐述了B树索引和哈希索引的优缺点、以及使用场景。其中B树支持全值匹配、匹配最左前缀、匹配列前缀、精确匹配某一列并范围匹配另一列、索引覆盖。但是B树索引存在着以下缺点:如果查找没有从索引列的最左边开始,则索引就发挥不了作用;查找时,不能跳过索引中的列;存储引擎不能优化访问任何在第一个范围条件右边的列。哈希索引虽然精确查找的速度极快,但是,它存在着不支持部分键匹配、发生碰撞时,检索速度变慢等缺点。

(3) 举例说明MyIsam和Innodb这两种存储引擎所支持的索引的不同之处。

(4) 回顾事务的四种隔离级别:Read Uncommitted、Read Committed、Repeatable Read、Serilizable.

(5) 讲解Innodb的多版本控制协议

(6) 讲解了Innodb在五种前提、九种组合下的加锁方式。

(7)通过复杂的SQL语句举例说明MySQL的加锁逻辑。