博客
关于我
mysql 表的操作
阅读量:795 次
发布时间:2023-02-11

本文共 1304 字,大约阅读时间需要 4 分钟。

MySQL 存储引擎详解

1. 存储引擎的概念

在关系型数据库中,数据的存储、管理和操作方式决定了数据库的性能和特性。存储引擎(Storage Engine)是数据库系统中负责数据存储和操作的核心组件。不同存储引擎提供不同的数据存储和操作机制,适用于不同的应用场景。

2. MySQL 支持的存储引擎

MySQL 提供了多种存储引擎,用户可以根据需求选择或开发存储引擎。以下是常用的 MySQL 存储引擎类型及其特点:

1. InnoDB 存储引擎

  • 特点

    • 支持事务处理,适合 OLTP 应用。
    • 行锁设计,支持外键。
    • 提供多版本并发控制(MVCC),防止幻读。
    • 数据以表空间存储,可选单独文件存储。
    • 自适应哈希索引和预读机制提升性能。
  • 适用场景:高并发、高可用性和高扩展性的 OLTP 应用。

2. MyISAM 存储引擎

  • 特点

    • 不支持事务,适合 OLAP 数据库。
    • 表锁设计,索引缓冲池只缓存索引文件。
    • 数据文件和索引文件分开存储。
  • 适用场景:简单查询和数据仓库应用。

3. NDB 存储引擎

  • 特点

    • 集群存储引擎,采用 share nothing 架构。
    • 数据存放在内存中,支持在线扩展。
    • 主键查询速度快,适合高性能 OLTP 应用。
  • 适用场景:高可用性和高性能的 OLTP 应用。

4. Memory 存储引擎

  • 特点

    • 数据存放在内存中,重启后数据丢失。
    • 提供哈希索引,适合临时数据存储和 OLAP 应用。
  • 适用场景:临时数据表和数据仓库维度表。

5. 其他存储引擎

  • Infobright:按列存储数据,适合 OLAP 应用。
  • NTSE:网易公司开发,支持事务和压缩功能。
  • BLACKHOLE:用于主备复制中的分发主库。

3. 如何指定表的存储引擎

在创建表时,可以通过 engine 选项指定存储引擎:

create table t1 (id int) engine=innodb;

默认存储引擎为 InnoDB(MySQL 5.5.8 及后版本)。

4. 创建表与插入数据

创建数据库

create database db2 charset utf8;

使用数据库

use db2;

创建表

create table a1 (id int, name varchar(50), age int(3));

插入数据

insert into a1 values(1, 'xb', 18), (2, 'sb', 20);

5. 查询数据与结构

查看数据

select * from a1;

查看表结构

desc a1;

查看表详细结构

show create table a1\G;

6. 复制表

创建数据库

create database db3 charset utf8;

使用数据库

use db3;

复制表结构和数据

create table b1 select * from db2.a1;

查看复制结果

select * from db3.b1;

7. 删除表

drop table 表名;

通过以上内容,用户可以全面了解 MySQL 存储引擎的类型及其使用方法,并通过实践操作数据库管理。

转载地址:http://rbbfk.baihongyu.com/

你可能感兴趣的文章
Mysql 脏页 脏读 脏数据
查看>>
mysql 自增id和UUID做主键性能分析,及最优方案
查看>>
Mysql 自定义函数
查看>>
mysql 行转列 列转行
查看>>
Mysql 表分区
查看>>
mysql 表的操作
查看>>
mysql 视图,视图更新删除
查看>>
MySQL 触发器
查看>>
mysql 让所有IP访问数据库
查看>>
mysql 记录的增删改查
查看>>
MySQL 设置数据库的隔离级别
查看>>
MySQL 证明为什么用limit时,offset很大会影响性能
查看>>
Mysql 语句操作索引SQL语句
查看>>
MySQL 误操作后数据恢复(update,delete忘加where条件)
查看>>
MySQL 调优/优化的 101 个建议!
查看>>
mysql 转义字符用法_MySql 转义字符的使用说明
查看>>
mysql 输入密码秒退
查看>>
mysql 递归查找父节点_MySQL递归查询树状表的子节点、父节点具体实现
查看>>
mysql 里对root及普通用户赋权及更改密码的一些命令
查看>>
Mysql 重置自增列的开始序号
查看>>