更新時(shí)間:2022-08-05 09:46:06 來源:動力節(jié)點(diǎn) 瀏覽1828次
InnoDB是MySQL存儲引擎之一,現(xiàn)在我們想確定 MySQL InnoDB 存儲引擎的特別之處。以下是它的主要優(yōu)點(diǎn):
InnoDB 基于 ACID 并支持提交和回滾操作。此外,它不太可能崩潰,因此用戶的數(shù)據(jù)仍然受到保護(hù)。
由于行級鎖定,多用戶性能成為可能。
由于 InnoDB 表有效地組織數(shù)據(jù),因此優(yōu)化了基于主鍵的查詢。每個(gè) InnoDB 表中都有一個(gè)稱為聚集索引的主鍵索引。該索引排列數(shù)據(jù)以減少主鍵查詢的 I/O。
MySQL InnoDB 支持外鍵約束,這允許實(shí)現(xiàn)和維護(hù)數(shù)據(jù)完整性。
InnoDB 也可以與 MariaDB 服務(wù)器一起使用。在這種情況下,InnoDB 提供外鍵、XA 事務(wù)和帶有保存點(diǎn)的事務(wù)。
每家公司的政策都以提供最安全、最穩(wěn)定的數(shù)據(jù)流為前提。但是如何實(shí)現(xiàn)和保證呢?答案在于 MySQL InnoDB Cluster,它為 MySQL 提供了一個(gè)方便的解決方案。通過 AdminAPI 和 MySQL Shell 的參與,您可以輕松管理多個(gè) MySQL 服務(wù)器實(shí)例以作為單個(gè) InnoDB Cluster 工作。
MySQL InnoDB Cluster 的組件包括:
MySQL 路由器(安全路由到數(shù)據(jù)庫節(jié)點(diǎn))
MySQL 組復(fù)制(相互復(fù)制的多個(gè)數(shù)據(jù)庫服務(wù)器)
MySQL Shell(MySQL 的配置工具,有助于啟用具有容錯(cuò)能力的拓?fù)?
看看這一切如何在單個(gè) InnoDB 集群中協(xié)同工作:
為了創(chuàng)建 InnoDB 表,您只需在 CREATE TABLE 語句中指定。例如:ENGINE = InnoDB
創(chuàng)建表Emp ( EmpID SMALLINT UNSIGNED NOT NULL , YearBorn YEAR NOT NULL , CityBorn VARCHAR ( 40 ) NOT NULL DEFAULT 'Unknown' ) ENGINE = INNODB ;
以下是可用的 InnoDB 服務(wù)器變量列表,這些變量有助于加速和優(yōu)化 MySQL 數(shù)據(jù)庫和 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 中的錯(cuò)誤處理并不總是與指定的 SQL 標(biāo)準(zhǔn)相同。例如,SQL 語句中的錯(cuò)誤必須導(dǎo)致該語句的回滾。至于 InnoDB,在某些情況下,失敗的語句會回滾;在其他情況下,整個(gè)事務(wù)都會回滾。
表空間空間不足會導(dǎo)致錯(cuò)誤,并且 SQL 語句會回滾。Table is full
除非在所述語句中指定了 IGNORE 選項(xiàng),否則重復(fù)鍵錯(cuò)誤會導(dǎo)致語句回滾。
鎖定等待超時(shí)會導(dǎo)致正在等待鎖定但面臨超時(shí)的語句回滾。
該錯(cuò)誤還會回滾相應(yīng)的語句。row too long
事務(wù)死鎖會導(dǎo)致整個(gè)事務(wù)回滾,之后應(yīng)該重試。
其他錯(cuò)誤一般會被 MySQL 代碼層檢測到,從而導(dǎo)致相關(guān)語句的回滾。
以上就是關(guān)于“MySQL InnoDB存儲引擎詳解”,大家如果對此比較感興趣,想了解更多相關(guān)知識,不妨來關(guān)注一下動力節(jié)點(diǎn)的MySQL教程,里面的課程內(nèi)容由淺到深,細(xì)致全面,很適合沒有基礎(chǔ)的小白學(xué)習(xí),希望對大家能夠有幫助。
初級 202925
初級 203221
初級 202629
初級 203743