mysql的存储引擎类型和索引类型
2016-07-08 23:29
471 查看
mysql的存储引擎,常用的有innodb和myisam
innodb支持外键,事务,行锁,安全性更高,写入快查询慢,适合大数据量
myisam查询快写入慢,支持全文索引,表锁(MyISAM同一个表上的读锁和写锁是互斥的,容易阻塞),
(myisam一个table实际保存为三个文件,.frm存储表定义,.MYD存储数据,.MYI存储索引)
(表锁是把整个表锁住,不能写,行锁只是锁住一行,这样安全性更高,,InnoDB行锁是通过给索引上的索引项加锁来实现的,这一点MySQL与Oracle不同,后者是通过在数据块中对相应数据行加锁来实现的)
还有heap 存在于内存的临时表
mysql的索引有
primary主键索引 唯一且不能为空
index索引 普通的(CREATE INDEX索引的名字 ON tablename (列名1,列名2,...);)
unique唯一索引 不允许有重复(CREATE UNIQUE INDEX索引的名字 ON tablename (列的列表);)
fulltext 全文索引 用于在一大串文本中进行搜索,(不支持中文分词,CREATE fulltext INDEX index_name ON table_name(colum_name);)
复合索引 可在多个字段上建立索引,比如INDEX(A, B, C)可以当做A或(A,
B)的索引来使用,但不能当做B、C或(B, C)的索引来使用
举个例子来说,比如你在为某商场做一个会员卡的系统。
这个系统有一个会员表
有下列字段:
会员编号 INT
会员姓名 VARCHAR(10)
会员身份证号码 VARCHAR(18)
会员电话 VARCHAR(10)
会员住址 VARCHAR(50)
会员备注信息 TEXT
那么这个 会员编号,作为主键,使用 PRIMARY
会员姓名 如果要建索引的话,那么就是普通的 INDEX
会员身份证号码 如果要建索引的话,那么可以选择 UNIQUE (唯一的,不允许重复)
会员备注信息 , 如果需要建索引的话,可以选择 FULLTEXT,全文搜索。
不过 FULLTEXT 用于搜索很长一篇文章的时候,效果最好。
用在比较短的文本,如果就一两行字的,普通的 INDEX 也可以
innodb支持外键,事务,行锁,安全性更高,写入快查询慢,适合大数据量
myisam查询快写入慢,支持全文索引,表锁(MyISAM同一个表上的读锁和写锁是互斥的,容易阻塞),
(myisam一个table实际保存为三个文件,.frm存储表定义,.MYD存储数据,.MYI存储索引)
(表锁是把整个表锁住,不能写,行锁只是锁住一行,这样安全性更高,,InnoDB行锁是通过给索引上的索引项加锁来实现的,这一点MySQL与Oracle不同,后者是通过在数据块中对相应数据行加锁来实现的)
还有heap 存在于内存的临时表
mysql的索引有
primary主键索引 唯一且不能为空
index索引 普通的(CREATE INDEX索引的名字 ON tablename (列名1,列名2,...);)
unique唯一索引 不允许有重复(CREATE UNIQUE INDEX索引的名字 ON tablename (列的列表);)
fulltext 全文索引 用于在一大串文本中进行搜索,(不支持中文分词,CREATE fulltext INDEX index_name ON table_name(colum_name);)
复合索引 可在多个字段上建立索引,比如INDEX(A, B, C)可以当做A或(A,
B)的索引来使用,但不能当做B、C或(B, C)的索引来使用
举个例子来说,比如你在为某商场做一个会员卡的系统。
这个系统有一个会员表
有下列字段:
会员编号 INT
会员姓名 VARCHAR(10)
会员身份证号码 VARCHAR(18)
会员电话 VARCHAR(10)
会员住址 VARCHAR(50)
会员备注信息 TEXT
那么这个 会员编号,作为主键,使用 PRIMARY
会员姓名 如果要建索引的话,那么就是普通的 INDEX
会员身份证号码 如果要建索引的话,那么可以选择 UNIQUE (唯一的,不允许重复)
会员备注信息 , 如果需要建索引的话,可以选择 FULLTEXT,全文搜索。
不过 FULLTEXT 用于搜索很长一篇文章的时候,效果最好。
用在比较短的文本,如果就一两行字的,普通的 INDEX 也可以
相关文章推荐
- 日常记录(一)MySQL被锁解决方案
- 重新设置MySQL的密码
- Upgrading to MySQL 5.7---focusing on temporal types
- Mysql中的单引号,双引号,反引号
- 【转】MySQL安全配置介绍
- mysqldump备份7
- MySQL多层级结构-区域表使用树详解
- VS2015 +EF6 连接MYSQL数据库生成实体
- mysqldump原理5
- MySQL 开启二进制日志记录
- mysqldump原理4
- MySQL多层级结构-树搜索介绍
- mysqldump原理3
- navicat连接mysql: 报错1042 cant get hostname for your address
- mysqldump原理2
- MySQL Explain详解(转)
- mysqldump原理1
- 两个MySQL存储过程中文问题的解决方案
- mysql 存储过程字符集
- MYSQL----对表中数据进行插入,更新,删除