Archive引擎初探

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:
今天研究了一下Archive引擎,发现其唯一的优点:在于节省磁盘空间,与Myisam引擎相比,节省近13倍多的磁盘空间,占用的磁盘空间少了,I/O占用也随之变小,不过,个人认为,在磁盘这么廉价的今天,Archive引擎也没有什么优势。
 
查看表的当前引擎为Myisam:
mysql> show table status like 'Sword_log'\G;
*************************** 1. row ***************************
           Name: Sword_log
         Engine: MyISAM
        Version: 10
     Row_format: Dynamic
           Rows: 7215544
 Avg_row_length: 166
    Data_length: 1203502908
Max_data_length: 281474976710655
   Index_length: 73538560
      Data_free: 0
 Auto_increment: 188213135
    Create_time: 2010-08-05 00:43:19
    Update_time: 2010-08-05 00:48:35
     Check_time: 2010-08-05 00:48:37
      Collation: utf8_general_ci
       Checksum: NULL
 Create_options: 
        Comment: 
1 row in set (0.00 sec)
ERROR: 
No query specified
 
 

mysql> desc Sword_log;
+------------+---------------+------+-----+-------------------+-----------------------------+
| Field      | Type          | Null | Key | Default           | Extra                       |
+------------+---------------+------+-----+-------------------+-----------------------------+
| id         | int(16)       | NO   | PRI | NULL              | auto_increment              |
| operate    | varchar(40)   | NO   |     | NULL              |                             |
| param      | varchar(2048) | NO   |     | NULL              |                             |
| createDttm | timestamp     | NO   |     | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
| userId     | int(16)       | NO   |     | NULL              |                             |
| accId      | int(16)       | NO   |     | NULL              |                             |
| accName    | varchar(40)   | NO   |     | NULL              |                             |
| userName   | varchar(40)   | NO   |     | NULL              |                             |
+------------+---------------+------+-----+-------------------+-----------------------------+
8 rows in set (0.00 sec)
 
 
测试查询时间,Myisam引擎耗时2.31秒:
mysql> select count(*),id from Sword_log group by id having count(*)>1;
Empty set (2.31 sec)
 
 
把引擎改为Innodb格式,并再次查询,耗时2.62秒:
mysql> alter table Sword_log engine=innodb;
Query OK, 7215544 rows affected (1 min 56.15 sec)
Records: 7215544  Duplicates: 0  Warnings: 0
mysql> select count(*),id from Sword_log group by id having count(*)>1;
Empty set (2.62 sec)
 
 
 
把引擎改为Archive格式的的时候报错,个人感觉可能是mysql bug,删除自增及主键后可以改,不过这样应该没有什么实际意义了,靠应用来维护基本上是不可能的事情,更改为Archive之后,查询时间为1分38秒:

mysql> alter table Sword_log engine=archive;
ERROR 1022 (23000): Can't write; duplicate key in table '#sql-6d20_55'

mysql> alter table Sword_log change id id int(16);
Query OK, 7215544 rows affected (1 min 35.59 sec)
Records: 7215544  Duplicates: 0  Warnings: 0
mysql> alter table Sword_log drop primary key;
Query OK, 7215544 rows affected (2 min 25.19 sec)
Records: 7215544  Duplicates: 0  Warnings: 0
mysql> alter table Sword_log engine=archive;
Query OK, 7215544 rows affected (1 min 5.83 sec)
Records: 7215544  Duplicates: 0  Warnings: 0
mysql> select count(*) from Sword_log;
+----------+
| count(*) |
+----------+
|  7215544 |
+----------+
1 row in set (0.00 sec)
mysql> select count(*),id from Sword_log group by id having count(*)>1;
Empty set (1 min 37.86 sec)
 
 
 
采用Myisam引擎Sword_log表所占用的磁盘空间:
[root@youyou yy]# du -sh Sword_log*
20K     Sword_log.frm
1.2G    Sword_log.MYD
94M     Sword_log.MYI
 
 
 
采用Archive引擎Sword_lg表所占用的磁盘空间:
[root@youyou xx]# du -sh Sword_log*
97M     Sword_log.ARZ
20K     Sword_log.frm
 









本文转自 trt2008 51CTO博客,原文链接:http://blog.51cto.com/chlotte/362209,如需转载请自行联系原作者
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
1月前
ApacheHudi Archive(归档)实现分析
ApacheHudi Archive(归档)实现分析
22 0
|
3月前
|
关系型数据库 数据库 流计算
Flink CDC在处理Incremental Snapshot PG数据库时
Flink CDC在处理Incremental Snapshot PG数据库时
138 1
|
关系型数据库 数据库 PostgreSQL
PostgreSQL 11 新特性解读 : Initdb/Pg_resetwal支持修改WAL文件大小
PostgreSQL 11 版本的一个重要调整是支持 initdb 和 pg_resetwal 修改 WAL 文件大小,而 11 版本之前只能在编译安装 PostgreSQL 时设置 WAL 文件大小。
8711 0
|
9月前
|
监控 关系型数据库 Shell
[翻译]PG15新特性-加速WAL日志归档
[翻译]PG15新特性-加速WAL日志归档
101 0
|
9月前
|
SQL 机器学习/深度学习 存储
PostgreSQL逻辑备份pg_dump使用及其原理解析
PostgreSQL逻辑备份pg_dump使用及其原理解析
177 0
|
11月前
|
存储 关系型数据库 MySQL
|
XML Java API
开源日志库 [log4c] 使用
开源日志库 [log4c] 使用
320 0
开源日志库 [log4c] 使用
|
1天前
|
存储 SQL 算法
ADB PG最佳实践之压缩算法的最佳选择
导读:在做ADB PG的业务表DDL设计时,应该如何选取压缩算法和压缩级别?本文以实际场景PoC测试来为用户提供压缩算法选取相关最佳实践。
|
存储 关系型数据库 索引

热门文章

最新文章