我是靠谱客的博主 洁净冰棍,最近开发中收集的这篇文章主要介绍mysql的存储引擎种类_mysql中常见的存储引擎和索引类型,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

存储引擎

1.      定义

存储引擎说白了就是如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。因为在关系数据库中数据的存储是以表的形式存储的,所以存储引擎也可以称为表类型(即存储和操作此表的类型)。

在Oracle 和SQL Server等数据库中只有一种存储引擎,所有数据存储管理机制都是一样的。而MySql数据库提供了多种存储引擎。用户可以根据不同的需求为数据表选择不同的存储引擎,用户也可以根据自己的需要编写自己的存储引擎。

2.      存储引擎的类型及特点

引擎名称

优点

缺陷

应用场景

MyISAM

独立于操作系统,这说明可以轻松地将其从Windows服务器移植到Linux服务器

不支持事务/行级锁/外键约束

适合管理邮件或Web服务器日志数据

InnoDB

健壮的事务型存储引擎;支持事务/行级锁/外键约束自动灾难恢复/AUTO_INCREMENT

需要事务支持,并且有较高的并发读取频率

MEMORY

为得到最快的响应时间,采用的逻辑存储介质是系统内存

当mysqld守护进程崩溃时,所有的Memory数据都会丢失;不能使用BLOB和TEXT这样的长度可变的数据类型

临时表

MERGE

是MyISAM类型的一种变种。合并表是将几个相同的MyISAM表合并为一个虚表

常应用于日志和数据仓库

ARCHIVE

归档的意思,支持索引,拥有很好的压缩机制

仅支持插入和查询功能

经常被用来当做仓库使用

详细请参考:

索引

Nomal:

没什么好说的

Unique:

列值不能有重复,主键就是一种特殊的唯一索引

Full Text:

用于全文检索,仅可用在MyISAM/InnoDB引擎表格的char、varchar和text的字段上

创建:

CREATE TABLE article (

id INT AUTO_INCREMENT NOT NULL PRIMARY KEY,

title VARCHAR(200),

body TEXT,

FULLTEXT(title, body)

) TYPE=MYISAM;

使用:

--单列,单词

SELECT * FROM `student` WHERE MATCH(`name`) AGAINST('聪')

--多列,多词

SELECT * FROM `student` WHERE MATCH(`name`,`address`) AGAINST('聪 广东')

--用IN BOOLEAN MODE即可以避开50%的门槛限制。

SELECT * FROM `student` WHERE MATCH(`name`) AGAINST('聪' IN BOOLEAN MODE)

---------------------------------

B-Tree索引:

B-Tree 索引是 MySQL 数据库中使用最为频繁的索引类型,除了 Archive 存储引擎之外的其他所有的存储引擎都支持 B-Tree 索引。B-Tree 索引的物理文件大多都是以 Balance Tree 的结构来存储的,也就是所有实际需要的数据都存放于 Tree 的 Leaf Node ,而且到任何一个 Leaf Node 的最短路径的长度都是完全相同的。

Hash索引:

将索引字段转化为hashcode,在对hashcode进行排序。仅支持Memory引擎。

(详见:http://blog.sina.com.cn/s/blog_6fd335bb0100v1lm.html)

最后

以上就是洁净冰棍为你收集整理的mysql的存储引擎种类_mysql中常见的存储引擎和索引类型的全部内容,希望文章能够帮你解决mysql的存储引擎种类_mysql中常见的存储引擎和索引类型所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部