博客
关于我
mysql 表的操作
阅读量:793 次
发布时间: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 join原理
查看>>
MySQL JOIN原理
查看>>
MySQL Join算法与调优白皮书(二)
查看>>
MySql LAST_INSERT_ID 【插入多条数据时】
查看>>
Mysql MyISAM 压缩(前缀压缩)索引
查看>>
Mysql order by与limit混用陷阱
查看>>
Mysql order by与limit混用陷阱
查看>>
mysql order by多个字段排序
查看>>
MySQL Order By实现原理分析和Filesort优化
查看>>
mysql problems
查看>>
mysql replace first,MySQL中处理各种重复的一些方法
查看>>
MySQL replace函数替换字符串语句的用法(mysql字符串替换)
查看>>
mysql replace用法
查看>>
Mysql Row_Format 参数讲解
查看>>
mysql select as 多个_MySQL 中 根据关键字查询多个字段
查看>>
mysql select, from ,join ,on ,where groupby,having ,order by limit的执行顺序和书写顺序
查看>>
MySQL Server 5.5安装记录
查看>>
mysql server has gone away
查看>>
mysql skip-grant-tables_MySQL root用户忘记密码怎么办?修改密码方法:skip-grant-tables
查看>>
mysql slave 停了_slave 停止。求解决方法
查看>>