选择合适的引擎
当设计基于MySQL的应用程序时,要考虑用什么存储引擎来保存数据。如果在设计阶段不考虑这个,你就会在以后的过程中遇到一些困难。你可能发现默认的存储引擎并没有提供一些你需要的功能。如事务管理或者读写的混合需要比MyISAM表锁更好的隔离级别的锁。
因为你可以为每个表都设置存储引擎。你必须清晰的知道每张表的用途和存储的数据。考虑这些也可以帮助你对应用有个更好的了解以及潜在的增长数据。
有了些信息,就可以开始选择引擎了。
一些考虑
虽然有很多因素决定了你使用引擎的种类,但总的来说因素就那么几个。下面列出的是应该主要考虑的因素:
事物
如果你的引擎需要事物处理,InnoDB是稳定,易于集成,证明是没错的选择。然而,我们更期待和它竞争的引擎出现。
如果不需要事物和能使用主要的查询和插入语句,MyISAM是个很好的选择。一些应用的模块适用于它,如日志。
并发
如果最好的满足你的并发性需求取决你的工作量了。如果你仅仅是并发的插入和读取。不管相信与否,MyISAM是最好的了。如果你让这些操作互不干扰,就应该选择一个支持行锁的引擎。
备份
有规律的备份也影响表的引擎选择。如果服务器关闭,并且定期的备份,存储引擎很容易处理。如果你需要在线备份并从一个格式转换为另一个。这个选择就不明智了。以后会详细说这部分。
要考虑多引擎所引起的备份和服务器调整的复杂性。
错误恢复
如果你有很多数据,你要考虑错误恢复的时间。MyISAM相对于InnoDB非常容易崩溃而且从崩溃中恢复的时间非常慢,这就是为什么有的人即使不使用事务处理也要用InnoDB了。
特殊功能
最终,你可能发现有的应用需要依靠一些MySQL存储引擎特殊的功能和优化,举个例子,有的应用程序非常依赖于集群的索引优化。这时候,你只能在InnoDB和solidDB选择了。另一方面,只有MyISAM支持全文索引。如果一个存储引擎遇到了一个或多个苛刻的需求,对于其他并不算是,那么你就要选一个折中的方案或者找到一个好的解决方案。通常你能从看上去不满足你的需求的存储引擎,找到你所需要的。
你不必现在决定选择哪个引擎。在剩下的教程中会接着说各个引擎的优点和缺点。以及架构设计的提示。一般来说,现实中的方案比你知道的要多的多。
分享到:
相关推荐
服务层是MySQL架构的最上层,主要负责客户端的连接处理、授权认证以及安全检查,为客户端提供访问MySQL服务的接口。 核心层主要包含查询解析、分析优化SQL语句,以及缓存查询结果等功能,是MySQL处理数据的核心部分...
#### 四、存储引擎选择 选择合适的存储引擎对于保证数据库性能和稳定性至关重要。具体的选择应考虑以下几个因素: - **事务需求**:如果应用程序需要支持事务,则应选择InnoDB。 - **并发性能**:行级锁的InnoDB...
Hive通常会将元数据(例如表结构和分区信息)存储在关系数据库中,MySQL是一个常见的选择。集成MySQL可以提供高可用性和可扩展性,确保Hive的数据管理层面上的稳定性。 `Linux下的Mysql安装.doc`可能提供了在Linux...
10. **性能优化**:此版本的MySQL支持InnoDB存储引擎的性能优化,如InnoDB Buffer Pool、索引优化、并行查询处理等,以提高数据读写速度和整体性能。 总之,`mysql-community-server-8.4.0-1.el9.x86_64`是为RHEL/...
选择合适的存储引擎对性能有很大影响。 - **索引**:创建索引可以加速查询,但也会占用额外的存储空间。应合理设计索引,尤其是在高并发和大数据量的场景下。 - **备份与恢复**:定期备份数据库以防数据丢失,可以...
1. **性能提升**:MySQL 5.7通过优化查询执行引擎、缓存策略和InnoDB存储引擎提供了显著的性能提升,使得处理大数据集更加高效。 2. **InnoDB增强**:InnoDB存储引擎在5.7版本中得到了显著强化,包括支持更大的索引...
5. **8.0.20版本特性**:此版本包含了MySQL 8.0的主要改进,如优化的InnoDB存储引擎,增强的JSON支持,新的SQL功能,以及性能和安全性的提升。 6. **安装与配置**:解压“mysql-cluster-8.0.20-winx64.zip”后,...
- InnoDB 存储引擎增强:包括对大页内存的支持,改进的行格式,以及更好的性能监控。 - 查询优化器改进:采用了新的统计信息收集策略,提升了查询计划的准确性。 - 分区表改进:支持更多的分区类型和操作,例如在线...
MySQL数据库的架构设计允许存储引擎以插件式的方式存在,这意味着我们可以根据不同的应用需求选择不同的存储引擎。存储引擎负责数据的存储和提取,不同的存储引擎提供了不同的功能和特性,以适应不同的应用场景。 ...
总的来说,"mysql-5.7.32-linux-glibc-2.28-aarch64.tar.gz"是为ARM架构设计的MySQL版本,旨在为基于ARM的设备提供稳定且高效的数据存储和管理解决方案。正确安装和配置MySQL 5.7.32,可以充分利用这些设备的潜力,...
MySQL是世界上最受欢迎的关系型数据库管理系统之一,而MySQL Connector/J则是MySQL官方提供的用于Java应用程序的数据...通过合理的架构设计和安全实践,可以有效地利用此驱动程序实现Android与MySQL之间的数据交换。
MySQL是世界上最受欢迎的开源关系型数据库管理系统之一,其性能强大且功能丰富,广泛应用于网站开发、数据存储和处理等场景。Boost是一个C++库集合,提供了各种工具来增强应用程序的性能,包括线程管理、正则表达式...
1. **事务处理支持**: MySQL 5.0引入了InnoDB存储引擎,提供了ACID(原子性、一致性、隔离性、持久性)事务支持,这对于需要高度数据一致性的应用至关重要。 2. **SQL标准兼容性**: MySQL 5.0增强了对SQL92和SQL99...
因此,根据实际环境选择合适的驱动版本至关重要。 总的来说,MySQL Connector/J是Java开发MySQL应用的必备工具,5.1.44版本为开发者提供了稳定的连接性和兼容性,确保了在Java 1.6和1.7环境下与MySQL 5.7数据库的...
- **性能优化**:MySQL 5.6引入了InnoDB存储引擎的性能增强,如InnoDB并行插入,提高了多线程插入的效率。 - **全文搜索**:增加了全文本搜索功能,支持更复杂的查询语法,提高了搜索精度。 - **分区改进**:表...
MySQL 5.6版本是一个较旧但仍然稳定且功能丰富的版本,它引入了许多性能改进和新特性,如InnoDB存储引擎的增强,支持更多SQL标准,以及更高效的查询优化器。 在Linux CentOS环境下安装MySQL,通常会通过命令行使用...
- **InnoDB存储引擎增强**:MySQL 5.7对InnoDB存储引擎进行了大量改进,包括更快的插入速度、更高的并发性和更小的数据文件占用空间。 - **JSON支持**:增加了对JSON数据类型的内置支持,允许用户在关系数据库中...
2. **SQL命令执行**:`MySqlCommand`类允许执行SQL查询和存储过程。开发者可以通过设置`CommandText`属性来指定SQL语句,然后调用`ExecuteReader`、`ExecuteNonQuery`或`ExecuteScalar`方法来获取结果。 3. **数据...
MySQL for Visual Studio 1.2.9 是一个专为Visual Studio设计的插件,它为开发者提供了一套集成的工具,使得在Visual Studio环境中开发、管理和部署MySQL数据库变得更加便捷高效。这个插件允许开发者直接在Visual ...