存储引擎MyISAM和InnoDB

目录

一、存储引擎概述

1.存储引擎概念

2.存储引擎分类

3.选择存储引擎的原则

二、InnoDB 存储引擎

三、MyISAM 存储引擎

四、实验操作


一、存储引擎概述

1.存储引擎概念

数据库存储引擎是数据库底层软件组件,数据库管理系统使用数据库引擎进行创建,查询,更新和删除数据。不同存储引擎提供不同存储机制,搜索技巧,锁定水平。MySQL核心是存储引擎。

MySQL中,可以利用show  engines 显示数据库引擎。可以在每一个表使用不同的存储引擎。

MySQL 5.7 支持的存储引擎有 InnoDB、MyISAM、Memory、Merge、Archive、Federated、CSV、BLACKHOLE。

2.存储引擎分类

innodb: 64T 、支持事务、B树索引、数据缓存、支持外键

myisam:256T、支持全文索引、B树索引、

memory:内存、B树索引、hash索引

功能

MylSAM

MEMORY

InnoDB

Archive

存储限制

256TB

RAM

64TB

None

支持事务

No

No

Yes

No

支持全文索引

Yes

No

No

No

支持树索引

Yes

Yes

Yes

No

支持哈希索引

No

Yes

No

No

支持数据缓存

No

N/A

Yes

No

支持外键

No

No

Yes

No

 备注:
Innodb:事务型数据库的首选引擎,支持事务安全表(ACID),支持锁定和外键,InnoDB是默认存储引擎。

MyISAM:基于ISAM存储引擎,进行扩展,在Web、数据仓储最常用的存储引擎。MyISAM拥有较高插入,查询速度,但是不支持事务。

MeMORY:将存储数据存储到内存中,进行快速查询和引用。

3.选择存储引擎的原则

提供提交、回滚和恢复的事务安全表能力,选择InnoDB。

用来插入和查询记录,MyISAM提供较高的处理效率。

存储临时数且数据量不大,不需要较高的安全性,选择MeMORY。

二、InnoDB 存储引擎

用 InnoDB 存储引擎是最理想的选择:

(1)更新密集的表:InnoDB 存储引擎特别适合处理多重并发的更新请求。

(2)事务:InnoDB 存储引擎是支持事务的标准 MySQL 存储引擎。

(3)自动灾难恢复:与其它存储引擎不同,InnoDB 表能够自动从灾难中恢复。

(4)外键约束:MySQL 支持外键的存储引擎只有 InnoDB。

(5)支持自动增加列 AUTO_INCREMENT 属性。
 

Innodb的数据文件:

ibd:数据表的数据文件

frm:数据表的元数据

opt:存储的是mysql的一些配置信息,如编码、排序的信息等

三、MyISAM 存储引擎

每个 MyISAM 表在磁盘上存储成 3 个文件,其中文件名和表名都相同,但是扩展名分别为:

(1)frm(存储表定义)

(2)MYD(MYData,存储数据)

(3)MYI(MYIndex,存储索引)
 

MyISAM 表还支持 3 种不同的存储格式:

(1)静态(固定长度)表

(2)动态表

(3)压缩表

四、实验操作

修改默认的存储引擎

(1)创建表,并查看默认用的存储引擎

mysql> create database auth;

mysql> use auth  

mysql> CREATE TABLE t1 (user_name CHAR(16), user_passwd CHAR(48));

mysql> show table status from auth where name='t1'\G

(2)通过 alter table 修改

mysql> alter table t1 engine=MyISAM;

mysql> show table status from auth where name='t1'\G

(3)通过配置文件修改

[root@localhost ~]# vim /etc/my.cnf

[mysqld]

#添加下面语句

default-storage-engine=MyISAM

[root@localhost ~]# systemctl restart mysqld

[root@localhost ~]# mysql -uroot -ppwd123

mysql> use auth

mysql> CREATE TABLE t2 (user_name CHAR(16), user_passwd CHAR(48));

mysql> show table status from auth where name='t2'\G

注意:

通过配置文件修改的方法,对以前的老表不会有影响,只会影响以后新创建的表,并且在创建表时没有指定存储引擎的情况。

(4)通过 create table 创建表时指定存储引擎

mysql> use auth

mysql> create table t3 (id int(10),name char(20)) engine=INNODB;

mysql> show table status from auth where name='t3'\G

(5)临时修改默认的存储引擎

SET default_storage_engine=< 存储引擎名 >

资源下载链接为: https://pan.quark.cn/s/1bfadf00ae14 华为移动服务(Huawei Mobile Services,简称 HMS)是一个全面开放的移动服务生态系统,为企业开发者提供了丰富的工具 API,助力他们构建、运营推广应用。其中,HMS Scankit 是华为推出的一款扫描服务 SDK,支持快速集成到安卓应用中,能够提供高效且稳定的二维码条形码扫描功能,适用于商品扫码、支付验证、信息获取等多种场景。 集成 HMS Scankit SDK 主要包括以下步骤:首先,在项目的 build.gradle 文件中添加 HMS Core 库 Scankit 依赖;其次,在 AndroidManifest.xml 文件中添加相机访问互联网访问权限;然后,在应用程序的 onCreate 方法中调用 HmsClient 进行初始化;接着,可以选择自定义扫描界面或使用 Scankit 提供的默认扫描界面;最后,实现 ScanCallback 接口以处理扫描成功失败的回调。 HMS Scankit 内部集成了开源的 Zxing(Zebra Crossing)库,这是一个功能强大的条码二维码处理库,提供了解码、生成、解析等多种功能,既可以单独使用,也可以与其他扫描框架结合使用。在 HMS Scankit 中,Zxing 经过优化,以更好地适应华为设备,从而提升扫描性能。 通常,ScanKitDemoGuide 包含了集成 HMS Scankit 的示例代码,涵盖扫描界面的布局、扫描操作的启动停止以及扫描结果的处理等内容。开发者可以参考这些代码,快速掌握在自己的应用中实现扫码功能的方法。例如,启动扫描的方法如下: 处理扫描结果的回调如下: HMS Scankit 支持所有安卓手机,但在华为设备上能够提供最佳性能体验,因为它针对华为硬件进行了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值