数据库

数据库的几类文件:表定义文件(.frm)、数据文件(.MYD)、索引文件(.MYI)

存储引擎

通俗来讲,是如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。

在MySql数据库提供了多种存储引擎。用户可以根据不同的需求为数据表选择不同的存储引擎。Oracle中没有存储引擎的概念,

仅OLTP和OLAP模式的区分,无论哪种模式都支持事务。所有只谈论mysql的存储引擎类型。

使用show engines命令可以显示当前数据库支持的存储引擎


主要的几种:

MyISAM(静态、动态、压缩):不支持事务、外键约束、行级锁(支表级锁);拥有较高的插入、查询速度。

InnoDB:支持事务、外键约束、行级锁。

Memory:表结构存放在磁盘,数据存放在内存,重启后数据清空不支持BLOB、TEXT列;可以通过max_heap_table_size指定所使用的内存大小,当数据超过内存大小时会报错;操作速度快。

一个数据库中的不同表可以选用不同的存储引擎

内存表与临时表区别

参考:http://www.t086.com/article/5084

https://www.cnblogs.com/sunss/p/3191137.html

内存表:可以存放一些经常使用的数据。内存表大多数是当Cache用,在早期一台机器没有装Memcache等第三方cache时,内存表无疑是cache的最好的选择。而如今随着memcache、NoSQL的流行,内存表就越来越少人使用了


1. 多个session(会话),创建表的名字不能一样
2. 一个session创建会话后,对其他session也是可见的
3. data目录下只有tmp_memory.frm ,表结构放在磁盘上,数据放在内存中
4. mysql 重启或者关闭后内存表里的数据会丢失,但是表结构仍然存在
5. 支持索引、支持自增字段、查询缓存
6. show tables 看得到表

临时表:主要是为了存放一些中间大结果的子集,一般很少用,要用也一般是在程序中动态创建或者由MySQL内部根据SQL执行计划需要自己创建。

MySQL自动创建临时表场景:https://blog.csdn.net/xiaolyuh123/article/details/53286033


1. 创建的表的名字可以一样 
2. 表结构和数据都放在内存中,通过tmp_table_size来设定内存临时表大小,当数据量超过tmp_table_size所设定的值时MySQL会自动将其转成磁盘上的临时表
3. 会话消失表结构和数据都消失
4. show tables 看不到表

5. 可使用各类存储引擎

OLTP与OLAP

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值