首页 > 数据库 >MySQL的存储引擎

MySQL的存储引擎

时间:2022-08-15 19:44:33浏览次数:42  
标签:engine 存储 MySQL 引擎 innodb mysql

MySQL的存储引擎

存储引擎介绍

  1. 文件系统
    • 操作系统组织和存取数据的一种机制
    • 文件系统是一种软件
  2. 文件系统
    • 不管使用什么文件系统,数据内容不会变化
    • 不同的是,存储空间、大小、速度
  3. mysql引擎
    • 可以理解为MySQL的文件系统,只不过功能更加强大
  4. MySQL引擎功能
    • 处理可以提供基本的存取功能,还有更多功能事物功能,锁定,备份和恢复、优化以及特殊功能

总之存储引擎的各项是特效就是为了保证数据库的安全和性能设计结构。

mysql自带的存储引擎类型

mysql提供一下存储引擎:
	1.InonDB
	2.MyISAM
	3.MEMORY
	4.ARCHIVE
	5.FEDERATED
	6.EXAMPLE
	7.BLACKHOLE
	8.MERGE
	9.NDBCLUSTER
	10.CSV
# 还可以使用第三方存储引擎
	1.MySQL当中的插件式的存储引擎
	2.MySQL的两个分支
	
	perconaDB
		mariaDB

查看MySQL的存储引擎

# 查看所有的存储引擎
show engines

# 查看库中哪些表示InnoDB的存储引擎
 select TABLE_SCHEMA,TABLE_NAME,ENGINE from information_schema.tables where engine='innodb';
 
# 查看库中哪些表示是Myisam的存储引擎
 select TABLE_SCHEMA,TABLE_NAME,ENGINE from information_schema.tables where engine='myisam';

InnoDB和Mylsam的区别

物理区别

# innodb
-rw-r----- 1 mysql mysql   8710 Aug 15 10:05 city.frm		# 表结构文件
-rw-r----- 1 mysql mysql 704512 Aug 15 10:05 city.ibd		# 数据文件

# myisam
-rw-r----- 1 mysql mysql   10816 Aug  3 01:48 user.frm		# 表结构文件
-rw-r----- 1 mysql mysql     456 Aug  9 10:17 user.MYD		# 数据文件
-rw-r----- 1 mysql mysql    4096 Aug  9 11:04 user.MYI		# 数据文件

逻辑结构

# 在mysql5.5版本之后,默认的存储引擎,提供高可靠性和高性能
优点
	1.事物安全
	2.MVCC (Multi-Versioning Concurrency Control,多版本并发控制)
	3.InnoDB 行级别锁定
	4.Orade 样式一致非锁定读取
	5.表数据进行整理来优化基于主键的查询
	6.支持外键应用完整性约束
	7.大小数据卷上的最大性能
	8.将对表的查询与不同存储引擎混合
	9.出现故障后快速自动回复
	10.用于在内存中缓存数据和所有的缓存区池

InnoDB

# 重点
- MVCC
- 事物
- 行级锁
- 热备份
- Crash Safe Recovery (自动故障恢复)

# 查看存储引擎
 SELECT @@default_storage_engine;
 
# 查看建表语句
show create table student;
 
select TABLE_SCHEMA,TABLE_NAME,ENGINE from information_schema.tables where engine='innodb' and table_name='stu';
  
show table status like 'stu'\G

设置存储引擎

# 编辑MySQL配置文件
[mysql]
default-storage-engine=<Storage Engine>
default-storage-engine=innodb 
default-storage-engine=myisam

# 库内临时设置
create table 表名(id int)engine='存储引擎名';

企业案例

项目背景:

公司原有的架构:一个展示形的网站,LAMT,MySQL5.1.77版本(MYISAM),50M数据量。

小问题不断:

  1. 表级锁:对表中任意一行数据修改类操作时,整个表都会锁定,对其他行的操作都不能同时操作

  2. 不支持故障自动恢复(CSR) :当断电时有可能会出现数据孙华或丢失的问题。

如何解决

  1. 提议将现有的MYISAM引擎替换为Innodb,将版本替换为5.6.38
    • 如果使用MYISAM会产生小问题,性能安全不能得到保障,使用innodb可以结局这个问题
    • 5.1.77版本对于innodb引擎支持不够完善,5.6.38版本对innodb支持非常完善
  2. 实施过程和注意要素

解决思路和过程

1.开会讨论。停机维护
2.将操作步骤,提前写在文档中

2.1 准备新环境
新的centos系统
新的MySQL版本
配置文件优化好
服务启动好

3.关闭所有连接数据库的服务
systemctl stop php-fpm
systemctl stop tomcat

4.停数据库
systemctl stop mysqld

5.备份数据库中的全部数据
mysqldump -A -R --trigger --single-transaction --master-data=1

6.将备份的数据发送到新环境中
	将myisam存储引擎改成innodb
	
# 方案一
#!/bin/bash
for table in ` mysql -e 'show tables from zls'|awk 'NR>1'`;do
	mysql -e "alter table zls.$table engine='myisam'";
done、

# 方案二
mysqldump -B zls > /tmp/zls.sql
:%s@ENGINE=MyISAM@ENGINE=InnoDB@g

7.将数据库导入到新的数据库中

8.将几台web服务器,连接到新库,做测试

9.应用割接

标签:engine,存储,MySQL,引擎,innodb,mysql
From: https://www.cnblogs.com/ghjhkj/p/16589429.html

相关文章

  • 字符编码与配置文件、数据库存储引擎、创建表的完整语法、MySQL字段类型(整型、浮点型
    字符编码与配置文件可以用:\s来查看数据库基本信息,里面含有用户、字符编码等信息。Servercharacterset:latin1Dbcharacterset:latin1Clientcharacter......
  • mysql基础练习题
    mysql基础练习题 test11、创建emp表,设计字段为id,name,age,sex,salary(工资),resume(履历),time(入职时间)。2、往表中添加数据如下:insertintoemp(name,age,sex,s......
  • 2022 8-15 第四组 曹雨 MySQL数据库01
    MySQLMySQl是一个“关系型数据库管理系统”。MySQL使用了一种语言“SQL语言”MySQL分为社区版和商业版,体积小,速度快,成本低,开源以表的形式存取数据基本操作MySQL操......
  • MySQL字段类型与操作
    MYSQL字段类型与操作字符编码与配置文件操作代码功能查看\s查看数据库基本信息(用户、字符编码)配置(配置文件层面)my-default.iniwindows下MySQL默认的......
  • 20220815 第一组 于芮 mysql数据库第一天(第三十一天)
     小白成长记——第三十一天   今天我们告别了java基础,开始了新的旅程——mysql数据库,之前有接触过一点mysql数据库,所以有一点点的基础,对于今天新学的内容,没有那么......
  • 2022-8-15 数据库 mysql 第一天
    Mysql数据库数据库数据库【按照数据结构来组织、存储和管理数据的仓库】。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。数据对于公司......
  • .Net - 线程内变量(数据存储)的方法
    1.使用ThreadStatic特性[ThreadStatic]2.数据槽Thread.AllocateNamedDataSlot("slot");3..NET4.0后增加的ThreadLocal<T>类型newThreadLocal<string>(()=>"......
  • MySQL事务
    何为事务? 一言蔽之,事务是逻辑上的一组操作,要么都执行,要么都不执行。事务演示经典的转账问题mysql>starttransaction;QueryOK,0rowsaffected(0.00sec)mysql>......
  • mysql基础
    #SQL语句的分类:1、DQL(数据查询语言):所有的SELECT语句都是数据查询语句2、DDL(数据定义语言):CREATEDROPALTER等,对数据库、表(结构)进行增删改操作3、DML(数据操作语......
  • GEE的存储空间
    在EE中,主要的存储空间分别是:GoogleDrive,GoogleAssets,GoogleCloudStorage。(1)GoogleDrive是Google提供给用户的免费在线存储空间,总大小15G,用户可以在线将任务中的数......