开发者社区 > 数据库 > 关系型数据库 > 正文

请问数据表存储引擎如何选择?

请问数据表存储引擎如何选择?

展开
收起
felix@ 2023-03-31 12:12:30 1161 0
9 条回答
写回答
取消 提交回答
  • 一个九年资深的程序员,擅长数据库、Java、C#、系统运维、电脑技巧等方面知识,阿里云专家博主、C站站优质博主、公众号运营超五年,热爱分享IT技术相关技术文章,给大家提供帮助!

    MySQL 存储引擎的使用场景比较

    InnoDB 适合高并发、事务性的应用;

    MyISAM 适合读多写少的应用;

    MEMORY 适合数据集较小的应用;

    NDB Cluster 适合高可用、高并发的应用;

    ARCHIVE 适合归档数据的应用等。

    目前企业中绝大多数都是选择InnoDB。推荐使用这个。

    2023-04-06 14:39:53
    赞同 展开评论 打赏
  • 选择数据表存储引擎需要根据实际业务需求和数据特点来进行选择。常见的存储引擎有 MyISAM、InnoDB、MEMORY、ARCHIVE,每种存储引擎都有其各自的特点和适用情况。

    一般而言,在选择数据表存储引擎时,可以考虑以下因素:

    事务处理需求:如果需要支持事务处理,应该选择 InnoDB 存储引擎。MyISAM 存储引擎不支持事务处理,其优势在于查询速度较快。

    并发性能:如果并发性能较高,建议使用 InnoDB 存储引擎。InnoDB 通过行级锁定来实现,而 MyISAM 则通过表级锁定来实现。

    数据的完整性和安全性:如果需要保障数据的完整性和安全性,应该选择 InnoDB 存储引擎。InnoDB 支持外键、行级锁定和事务处理等特性,可以更好地保障数据的完整性和安全性。

    数据的读取和写入频率:如果数据的读取频率远高于写入频率,建议使用 MyISAM 存储引擎。MyISAM 对于读取操作的支持相对较好,相比其他存储引擎更适合只读或读远多于写的数据表。

    空间占用和存储效率:如果需要优化空间占用和存储效率,可以使用 ARCHIVE 存储引擎。ARCHIVE 存储引擎对于大量历史数据的存储非常适合,可以大幅度减小数据存储占用的空间。

    综上所述,选择数据表存储引擎需要根据实际需求进行评估和选择,考虑到数据的读写需求、并发性能、数据安全与完整性、存储效率等因素,选择最合适的存储引擎。

    2023-04-02 08:38:05
    赞同 1 展开评论 打赏
  • 热爱开发

    选择数据表存储引擎需要考虑多方面因素,根据实际情况进行评估和选择。一般来说,以下几点是需要考虑的:

    1)数据量和性能要求:如果数据量较小并且性能要求不高,可以选择MyISAM存储引擎;如果数据量较大或者需要更高的性能,可以选择InnoDB存储引擎。

    2)数据的事务性:如果数据需要支持事务,可以选择InnoDB存储引擎。

    3)数据的安全性:如果数据需要更高的安全性,可以选择支持加密存储的存储引擎,如MySQL Enterprise Encryption和InnoDB Transparent Page Encryption。

    4)其他因素:例如兼容性、可扩展性、及时更新等也需要考虑。

    所以,选择存储引擎需要综合考虑多方面因素,根据具体需求进行选择。

    2023-04-01 09:35:00
    赞同 展开评论 打赏
  • 引擎一般有: - InnoDB - MyISAM - Memory - CSV - Archive

    每种引擎的适用场景不同,所以得根据你的情况来,一般情况下: - InnoDB:适合经常更新的表或者存在并发读写或者有事务处理的业务系统。 - MyISAM:适合只读或以读为主的数据分析项目。 - Memory:适合做临时表。 - CSV:适合在不同数据库之间导入导出。 - Archive:适合做数据的备份。

    2023-03-31 22:47:50
    赞同 展开评论 打赏
  • 月移花影,暗香浮动

    数据表存储引擎是指数据库管理系统中用于管理和存储数据库表的组件。选择合适的存储引擎可以提高数据库的性能和可靠性。根据数据库管理系统的不同,可用的存储引擎也不尽相同。

    以下是一些常见的数据表存储引擎和它们的优缺点:

    1. InnoDB:是MySQL数据库管理系统的默认存储引擎,支持事务和行级锁定,具有优秀的并发处理性能和数据恢复能力。

    2. MyISAM:是MySQL数据库管理系统的另一个常用存储引擎,不支持事务和行级锁定,但它具有更快的查询速度和较小的存储空间需求。

    3. PostgreSQL:这是一个基于对象的关系型数据库管理系统,默认的存储引擎是可扩展性物理存储(eXtensible Storage Engine,简称XSE)。它提供了高度的可靠性和数据一致性,还支持高级的数据类型和功能,如全文检索和地理位置数据处理。

    4. Oracle:是一个功能强大的企业级数据库管理系统,提供了多个存储引擎供选择。其中,InnoDB是Oracle的默认存储引擎,同时还提供了Oracle专用的存储引擎,如Berkeley DB和TimesTen。

    选择适当的存储引擎应该考虑到您的应用程序的特定需求、数量和大小、数据访问模式等,需要进行综合评估。

    2023-03-31 18:05:25
    赞同 展开评论 打赏
    • MySQL InnoDB存储引擎
    • MySQL MyISAM存储引擎
    • MySQL Memory存储引擎

    2023-03-31 16:40:00
    赞同 展开评论 打赏
  • 天下风云出我辈,一入江湖岁月催,皇图霸业谈笑中,不胜人生一场醉。

    (1)MyISAM: Mysql的默认数据库,最为常用。拥有较高的插入,查询速度,但不支持事务 .frm: 存储表结构 .myd: 存储数据,MYData的缩写 .myi: 存储索引,MYIndex的缩写 (2)InnoDB :事务型数据库的首选引擎,支持ACID事务,支持行级锁定 (3)BDB:源自Berkeley DB,事务型数据库的另一种选择,支持COMMIT和ROLLBACK等其他事务特性 (4)Memory :所有数据置于内存的存储引擎,拥有极高的插入,更新和查询效率。但是会占用和数据量成正比的内存空间。并且其内容会在Mysql重新启动时丢失 (5)Merge:将一定数量的MyISAM表联合而成一个整体,在超大规模数据存储时很有用 (6)Archive :非常适合存储大量的独立的,作为历史记录的数据。因为它们不经常被读取。Archive拥有高效的插入速度,但其对查询的支持相对较差 (7)Federated:将不同的Mysql服务器联合起来,逻辑上组成一个完整的数据库。非常适合分布式应用 Cluster/NDB :高冗余的存储引擎,用多台数据机器联合提供服务以提高整体性能和安全性。适合数据量大,安全和性能要求高的应用 (8)CSV:逻辑上由逗号分割数据的存储引擎。它会在数据库子目录里为每个数据表创建一个.CSV文件。这是一种普通文本文件,每个数据行占用一个文本行。CSV存储引擎不支持索引。 (9)BlackHole:黑洞引擎,写入的任何数据都会消失,一般用于记录binlog做复制的中继

    2023-03-31 15:16:21
    赞同 展开评论 打赏
  • 从事java行业9年至今,热爱技术,热爱以博文记录日常工作,csdn博主,座右铭是:让技术不再枯燥,让每一位技术人爱上技术

    云数据库Mysql版使用习惯同传统开源Mysql使用习惯一致,过去一般建表都会选择存储引擎InnoDB,这里顺便了解一下Mysql存储引擎InnoDB与MyISAM的区别:InnoDB 支持事务MyISAM 不支持、InnoDB 支持外键、InnoDB 是聚集索引,MyISAM 是非聚集索引、InnoDB 不保存表的具体行数、InnoDB 最小的锁粒度是行锁,MyISAM是表锁等

    2023-03-31 13:38:53
    赞同 展开评论 打赏
  • 今天也要加油吖~

    您好,推荐使用 InnoDB 表,InnoDB 在并发读写情况下好于 MyISAM,并 InnoDB支持事务,表不易损坏。

    2023-03-31 12:12:52
    赞同 展开评论 打赏
滑动查看更多
问答分类:

阿里云关系型数据库主要有以下几种:RDS MySQL版、RDS PostgreSQL 版、RDS SQL Server 版、PolarDB MySQL版、PolarDB PostgreSQL 版、PolarDB分布式版 。

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载