关于mysql索引(fulltext、hash、btree)的实践
2016-05-21 15:47
405 查看
mysql的包含fulltext、hash和btree三种索引,在mysql5.6以下版本中,innodb引擎只支持hansh和btree索引,myisam引擎支持fulltext引擎;在5.7以后innodb引擎开始支持fulltext索引了,之前就遇到了这样的问题,我们公司用的是mysql5.6版本,用一张产品表大概有300万数据,所以想通过建fulltext索引以提高查询速度,但是5.6这个版本fulltext索引和事务支持是不可兼得的,之后就蛋痛的升级mysql数据库了。
fulltext索引。 本人觉得fulltext建索引有点像Lucene建索引,但是fulltext建索引不支持中文,如果数据库表数据达到百万级,用fulltext还是挺方便的,这样不必用Lucene去建索引和维护它。
hash索引。根据他的名字很好好理解,就是通过数据库数据的hash来建索引的,所以这类索引是不支持like查询和排序的,只支持= in < >等。不过这种索引比btree索引的查询要快。
btree索引。btree方面,本人现在不是太懂,用空再研究。但是一样是可以直接理解,这类索引是树型的,btree索引不允许null。
fulltext索引。 本人觉得fulltext建索引有点像Lucene建索引,但是fulltext建索引不支持中文,如果数据库表数据达到百万级,用fulltext还是挺方便的,这样不必用Lucene去建索引和维护它。
hash索引。根据他的名字很好好理解,就是通过数据库数据的hash来建索引的,所以这类索引是不支持like查询和排序的,只支持= in < >等。不过这种索引比btree索引的查询要快。
btree索引。btree方面,本人现在不是太懂,用空再研究。但是一样是可以直接理解,这类索引是树型的,btree索引不允许null。
相关文章推荐
- Mysql 5.7.12 免安装版配置
- mysqldump常用命令总结
- 二进制方式快速安装MySQL数据库命令集合
- mysql的时间查询方法整理
- nested exception is com.mysql.jdbc.MysqlDataTruncation: Data truncation: Truncated incorrect DOUBLE
- mysql auto increase 重置为0
- mysql 数据库 提示错误error 1146
- Mysql中文乱码问题完美解决方案
- MYSQL
- mysql数据库安装与卸载
- Mysql备份与恢复
- MySql--数据表中文乱码解决办法
- mysql 批量更新的四种方法
- MYSQL用户操作
- 图解用MySQL创建进销存数据库
- 数据存储知识(3)--mysql主从服务器的搭建
- MySQL复制表结构,表数据。
- mysql5.7.9安装步骤及如何将原来数据库中的数据复制到新的数据库中使用
- MySQL安装脚本
- mysql乱码解决