ISAM是Indexed Sequential Access Method (有索引的顺序访问方法) 的缩写,不支持事务和外键,表级锁,空间压缩,全文索引,select,insert多场景适用。好处是减少磁盘空间,减少磁盘I/O,提升查询性能。
Innodb:支持事务、行级锁、外键,表基于聚簇索引建立,主键查询性能高,InnoDB内部优化,磁盘读取数据的可预测读取,在内存自动创建hash索引来加速读操作的自适应hash索引,加速插入操作的插入缓冲区。 热备份,是其他引擎不具备的。(innodb 5.6版本起支持英文的全文索引,5.7.6支持中日韩的全文索引。)



行级锁

InnoDB的行级锁分为两种类型,共享锁和排他锁。
共享锁(S Lock):允许事务读一条数据
排它锁(X Lock):允许事务删除或跟新一条数据
锁兼容:只有两个共享锁

innodb默认情况下对select操作使用一致性非锁定读。
但是某些情况下,需要对select显示加锁
共享锁(S):SELECT * FROM table_name WHERE ... LOCK IN SHARE MODE
排他锁(X):SELECT * FROM table_name WHERE ... FOR UPDATE

全文索引

简介
  1).MySQL中的全文索引是FultLeXT类型的索引。
  2).全文索引只能用于InnoDB或MyISAM表,只能为CHAR、VARCHAR、TEXT列创建。
  3).在MySQL 5.7.6中,MySQL提供了支持中文、日文和韩文(CJK)的内置全文ngram解析器,以及用于日文的可安装MeCab全文解析器插件
  4).当创建表时,可以在CREATE TABLE语句中给出FULLTEXT索引定义,或者稍后使用ALTER TABLE或CREATE INDEX添加该定义。
  5).对于大型数据集,将数据加载到没有FULLTEXT索引的表中然后创建索引要比将数据加载到具有现有FULLTEXT索引的表中快得多。

全文索引的三种类型

  1. 自然语言搜索将搜索字符串解释为自然语言中短语。
  2. 布尔全文搜索
  3. 查询扩展搜索

数据结构: 倒排索引

倒排索引

标签: none

添加新评论