更新时间:2022-08-05 09:46:06 来源:极悦 浏览1260次
InnoDB是MySQL存储引擎之一,现在我们想确定 MySQL InnoDB 存储引擎的特别之处。以下是它的主要优点:
InnoDB 基于 ACID 并支持提交和回滚操作。此外,它不太可能崩溃,因此用户的数据仍然受到保护。
由于行级锁定,多用户性能成为可能。
由于 InnoDB 表有效地组织数据,因此优化了基于主键的查询。每个 InnoDB 表中都有一个称为聚集索引的主键索引。该索引排列数据以减少主键查询的 I/O。
MySQL InnoDB 支持外键约束,这允许实现和维护数据完整性。
InnoDB 也可以与 MariaDB 服务器一起使用。在这种情况下,InnoDB 提供外键、XA 事务和带有保存点的事务。
每家公司的政策都以提供最安全、最稳定的数据流为前提。但是如何实现和保证呢?答案在于 MySQL InnoDB Cluster,它为 MySQL 提供了一个方便的解决方案。通过 AdminAPI 和 MySQL Shell 的参与,您可以轻松管理多个 MySQL 服务器实例以作为单个 InnoDB Cluster 工作。
MySQL InnoDB Cluster 的组件包括:
MySQL 路由器(安全路由到数据库节点)
MySQL 组复制(相互复制的多个数据库服务器)
MySQL Shell(MySQL 的配置工具,有助于启用具有容错能力的拓扑)
看看这一切如何在单个 InnoDB 集群中协同工作:
为了创建 InnoDB 表,您只需在 CREATE TABLE 语句中指定。例如:ENGINE = InnoDB
创建表Emp ( EmpID SMALLINT UNSIGNED NOT NULL , YearBorn YEAR NOT NULL , CityBorn VARCHAR ( 40 ) NOT NULL DEFAULT 'Unknown' ) ENGINE = INNODB ;
以下是可用的 InnoDB 服务器变量列表,这些变量有助于加速和优化 MySQL 数据库和 InnoDB 存储引擎之间的性能和交互:
innodb_flush_log_at_trx_commit
innodb_buffer_pool_size
innodb_buffer_pool_instances
innodb_file_per_table
innodb_force_recovery
innodb_lock_wait_timeout
innodb_large_prefix
innodb_flush_method
innodb_thread_concurrency
innodb_log_buffer_size
innodb_io_capacity
innodb_strict_mode
innodb_autoinc_lock_mode
innodb_read_io_threads
innodb_data_file_path
InnoDB 中的错误处理并不总是与指定的 SQL 标准相同。例如,SQL 语句中的错误必须导致该语句的回滚。至于 InnoDB,在某些情况下,失败的语句会回滚;在其他情况下,整个事务都会回滚。
表空间空间不足会导致错误,并且 SQL 语句会回滚。Table is full
除非在所述语句中指定了 IGNORE 选项,否则重复键错误会导致语句回滚。
锁定等待超时会导致正在等待锁定但面临超时的语句回滚。
该错误还会回滚相应的语句。row too long
事务死锁会导致整个事务回滚,之后应该重试。
其他错误一般会被 MySQL 代码层检测到,从而导致相关语句的回滚。
以上就是关于“MySQL InnoDB存储引擎详解”,大家如果对此比较感兴趣,想了解更多相关知识,不妨来关注一下极悦的MySQL教程,里面的课程内容由浅到深,细致全面,很适合没有基础的小白学习,希望对大家能够有帮助。
0基础 0学费 15天面授
Java就业班有基础 直达就业
业余时间 高薪转行
Java在职加薪班工作1~3年,加薪神器
工作3~5年,晋升架构
提交申请后,顾问老师会电话与您沟通安排学习