`
风雪涟漪
  • 浏览: 510216 次
  • 性别: Icon_minigender_1
  • 来自: 大连->北京
博客专栏
952ab666-b589-3ca9-8be6-3772bb8d36d4
搜索引擎基础(Search...
浏览量:9146
Ae468720-c1b2-3218-bad0-65e2f3d5477e
SEO策略
浏览量:18578
社区版块
存档分类
最新评论

MySQL 架构 - MySQL 存储引擎 -选择合适的引擎

阅读更多

选择合适的引擎

当设计基于MySQL的应用程序时,要考虑用什么存储引擎来保存数据。如果在设计阶段不考虑这个,你就会在以后的过程中遇到一些困难。你可能发现默认的存储引擎并没有提供一些你需要的功能。如事务管理或者读写的混合需要比MyISAM表锁更好的隔离级别的锁。

 

因为你可以为每个表都设置存储引擎。你必须清晰的知道每张表的用途和存储的数据。考虑这些也可以帮助你对应用有个更好的了解以及潜在的增长数据。

 

有了些信息,就可以开始选择引擎了。

 

 

一些考虑

虽然有很多因素决定了你使用引擎的种类,但总的来说因素就那么几个。下面列出的是应该主要考虑的因素:

 

事物

如果你的引擎需要事物处理,InnoDB是稳定,易于集成,证明是没错的选择。然而,我们更期待和它竞争的引擎出现。

如果不需要事物和能使用主要的查询和插入语句,MyISAM是个很好的选择。一些应用的模块适用于它,如日志。

 

并发

如果最好的满足你的并发性需求取决你的工作量了。如果你仅仅是并发的插入和读取。不管相信与否,MyISAM是最好的了。如果你让这些操作互不干扰,就应该选择一个支持行锁的引擎。

 

备份

有规律的备份也影响表的引擎选择。如果服务器关闭,并且定期的备份,存储引擎很容易处理。如果你需要在线备份并从一个格式转换为另一个。这个选择就不明智了。以后会详细说这部分。

要考虑多引擎所引起的备份和服务器调整的复杂性。

 

错误恢复

如果你有很多数据,你要考虑错误恢复的时间。MyISAM相对于InnoDB非常容易崩溃而且从崩溃中恢复的时间非常慢,这就是为什么有的人即使不使用事务处理也要用InnoDB了。

 

特殊功能

最终,你可能发现有的应用需要依靠一些MySQL存储引擎特殊的功能和优化,举个例子,有的应用程序非常依赖于集群的索引优化。这时候,你只能在InnoDB和solidDB选择了。另一方面,只有MyISAM支持全文索引。如果一个存储引擎遇到了一个或多个苛刻的需求,对于其他并不算是,那么你就要选一个折中的方案或者找到一个好的解决方案。通常你能从看上去不满足你的需求的存储引擎,找到你所需要的。

 

你不必现在决定选择哪个引擎。在剩下的教程中会接着说各个引擎的优点和缺点。以及架构设计的提示。一般来说,现实中的方案比你知道的要多的多。

 

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    MySQL逻辑架构-存储引擎-用户权限密码详解

    服务层是MySQL架构的最上层,主要负责客户端的连接处理、授权认证以及安全检查,为客户端提供访问MySQL服务的接口。 核心层主要包含查询解析、分析优化SQL语句,以及缓存查询结果等功能,是MySQL处理数据的核心部分...

    mysql架构与存储引擎(MySQL逻辑架构、InnoDB引擎、MyISAM引擎、存储引擎选择).docx

    #### 四、存储引擎选择 选择合适的存储引擎对于保证数据库性能和稳定性至关重要。具体的选择应考虑以下几个因素: - **事务需求**:如果应用程序需要支持事务,则应选择InnoDB。 - **并发性能**:行级锁的InnoDB...

    MySQL-client-5.6.29-1.linux_glibc2.5.x86_64,MySQL-server-5.6.29-1.linux_glibc

    Hive通常会将元数据(例如表结构和分区信息)存储在关系数据库中,MySQL是一个常见的选择。集成MySQL可以提供高可用性和可扩展性,确保Hive的数据管理层面上的稳定性。 `Linux下的Mysql安装.doc`可能提供了在Linux...

    mysql-community-server-8.4.0-1.el9.x86-64

    10. **性能优化**:此版本的MySQL支持InnoDB存储引擎的性能优化,如InnoDB Buffer Pool、索引优化、并行查询处理等,以提高数据读写速度和整体性能。 总之,`mysql-community-server-8.4.0-1.el9.x86_64`是为RHEL/...

    MySQL-5.5.28-winx64安装包以及说明文档

    选择合适的存储引擎对性能有很大影响。 - **索引**:创建索引可以加速查询,但也会占用额外的存储空间。应合理设计索引,尤其是在高并发和大数据量的场景下。 - **备份与恢复**:定期备份数据库以防数据丢失,可以...

    mysql57-community-release-el7-11.noarch.rpm

    1. **性能提升**:MySQL 5.7通过优化查询执行引擎、缓存策略和InnoDB存储引擎提供了显著的性能提升,使得处理大数据集更加高效。 2. **InnoDB增强**:InnoDB存储引擎在5.7版本中得到了显著强化,包括支持更大的索引...

    mysql-cluster-8.0.20-winx64.zip

    5. **8.0.20版本特性**:此版本包含了MySQL 8.0的主要改进,如优化的InnoDB存储引擎,增强的JSON支持,新的SQL功能,以及性能和安全性的提升。 6. **安装与配置**:解压“mysql-cluster-8.0.20-winx64.zip”后,...

    mysql80-community-release-el8-1.noarch.7z

    - InnoDB 存储引擎增强:包括对大页内存的支持,改进的行格式,以及更好的性能监控。 - 查询优化器改进:采用了新的统计信息收集策略,提升了查询计划的准确性。 - 分区表改进:支持更多的分区类型和操作,例如在线...

    03-MySQL-高可用数据库存储引擎

    MySQL数据库的架构设计允许存储引擎以插件式的方式存在,这意味着我们可以根据不同的应用需求选择不同的存储引擎。存储引擎负责数据的存储和提取,不同的存储引擎提供了不同的功能和特性,以适应不同的应用场景。 ...

    mysql-5.7.32-linux-glibc-2.28-aarch64.tar.gz

    总的来说,"mysql-5.7.32-linux-glibc-2.28-aarch64.tar.gz"是为ARM架构设计的MySQL版本,旨在为基于ARM的设备提供稳定且高效的数据存储和管理解决方案。正确安装和配置MySQL 5.7.32,可以充分利用这些设备的潜力,...

    mysql-connector-java-5.1.30-bin.rar

    MySQL是世界上最受欢迎的关系型数据库管理系统之一,而MySQL Connector/J则是MySQL官方提供的用于Java应用程序的数据...通过合理的架构设计和安全实践,可以有效地利用此驱动程序实现Android与MySQL之间的数据交换。

    mysql-boost-5.7.20.tar.gz

    MySQL是世界上最受欢迎的开源关系型数据库管理系统之一,其性能强大且功能丰富,广泛应用于网站开发、数据存储和处理等场景。Boost是一个C++库集合,提供了各种工具来增强应用程序的性能,包括线程管理、正则表达式...

    mysql-essential-5.0.45

    1. **事务处理支持**: MySQL 5.0引入了InnoDB存储引擎,提供了ACID(原子性、一致性、隔离性、持久性)事务支持,这对于需要高度数据一致性的应用至关重要。 2. **SQL标准兼容性**: MySQL 5.0增强了对SQL92和SQL99...

    mysql-connector-java-5.1.44

    因此,根据实际环境选择合适的驱动版本至关重要。 总的来说,MySQL Connector/J是Java开发MySQL应用的必备工具,5.1.44版本为开发者提供了稳定的连接性和兼容性,确保了在Java 1.6和1.7环境下与MySQL 5.7数据库的...

    MySQL 5.6 for Windows 官方(mysql-5.6.34-winx64.zip)

    - **性能优化**:MySQL 5.6引入了InnoDB存储引擎的性能增强,如InnoDB并行插入,提高了多线程插入的效率。 - **全文搜索**:增加了全文本搜索功能,支持更复杂的查询语法,提高了搜索精度。 - **分区改进**:表...

    rpm-MySQL-client-server-5.6.23-1.el6.x86_64

    MySQL 5.6版本是一个较旧但仍然稳定且功能丰富的版本,它引入了许多性能改进和新特性,如InnoDB存储引擎的增强,支持更多SQL标准,以及更高效的查询优化器。 在Linux CentOS环境下安装MySQL,通常会通过命令行使用...

    mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz

    - **InnoDB存储引擎增强**:MySQL 5.7对InnoDB存储引擎进行了大量改进,包括更快的插入速度、更高的并发性和更小的数据文件占用空间。 - **JSON支持**:增加了对JSON数据类型的内置支持,允许用户在关系数据库中...

    MySQL驱动 mysql-connector-net-6.4.4

    2. **SQL命令执行**:`MySqlCommand`类允许执行SQL查询和存储过程。开发者可以通过设置`CommandText`属性来指定SQL语句,然后调用`ExecuteReader`、`ExecuteNonQuery`或`ExecuteScalar`方法来获取结果。 3. **数据...

    mysql-for-visualstudio-1.2.9_mysqlvs_

    MySQL for Visual Studio 1.2.9 是一个专为Visual Studio设计的插件,它为开发者提供了一套集成的工具,使得在Visual Studio环境中开发、管理和部署MySQL数据库变得更加便捷高效。这个插件允许开发者直接在Visual ...

Global site tag (gtag.js) - Google Analytics