MySQL™ 參考手冊(MySQL術語表A)

MySQL術語表A

這些術語一般用於MySQL數據庫服務器的信息中,這個術語表最初是做爲有關InnoDB存儲引擎的術語的參考,大多數定義都與InnoDB相關。mysql

.ARM文件算法

  • ARCHIVE表的元數據,與.ARZ文件造成對比,具備此擴展名的文件老是包含在MySQL Enterprise Backup產品的mysqlbackup命令生成的備份中。

.ARZ文件sql

  • ARCHIVE表的數據,與.ARM文件造成對比,具備此擴展名的文件老是包含在MySQL Enterprise Backup產品的mysqlbackup命令生成的備份中。

ACID數據庫

  • 原子性、一致性、隔離性和持久性的縮寫。這些屬性在數據庫系統中都是須要的,而且都與事務的概念緊密相關,InnoDB的事務特性遵循ACID原則。
  • 事務是能夠提交或回滾的工做的原子單位,當事務對數據庫進行屢次更改時,要麼全部更改在提交事務時成功,要麼全部更改在回滾事務時撤消。
  • 在每次提交或回滾以後,以及在事務進行期間,數據庫始終處於一致的狀態,若是跨多個表更新相關數據,查詢將看到全部舊值或全部新值,而不是新舊值的混合。
  • 事務在進行過程當中彼此受到保護(隔離),它們不能相互干擾或查看彼此未提交的數據,這種隔離是經過鎖定機制實現的。經驗豐富的用戶能夠調整隔離級別,當他們可以確保事務之間確實沒有相互干擾時,就能夠用更少的保護換取更高的性能和併發性。
  • 事務結果是持久的:一旦提交操做成功,該事務所作的更改就不會受到電源故障、系統崩潰、競爭條件或許多非數據庫應用程序容易受到的其餘潛在危險的影響。持久性一般包括對磁盤存儲的寫入,具備必定的冗餘,以防止在寫入操做期間出現電源故障或軟件崩潰(在InnoDB中,雙寫緩衝區有助於提升持久性)。

自適應沖洗編程

  • 一種用於InnoDB表的算法,它能夠消除檢查點引入的I/O開銷,MySQL不是一次性將全部修改過的頁面從緩衝池刷新到數據文件,而是按期刷新一小組修改過的頁面。自適應沖洗算法擴展了這一過程,根據沖洗速度和生成重作信息的速度,估計執行這些週期性沖洗的最優速度。

自適應哈希索引緩存

  • InnoDB表的優化,經過在內存中構造一個哈希索引,可使用=IN操做符加速查找,MySQL監視對InnoDB表的索引搜索,若是查詢能夠從哈希索引中獲益,它會爲常常訪問的索引頁自動構建一個索引。從某種意義上說,自適應哈希索引在運行時配置MySQL以利用充足的主內存,這更接近於主內存數據庫的體系結構,這個特性由innodb_adaptive_hash_index配置選項控制,因爲該特性對某些工做負載有好處,但對其餘工做負載沒有好處,並且用於哈希索引的內存保留在緩衝池中,所以一般應該使用啓用和禁用該特性來進行基準測試。
  • 哈希索引老是基於表上現有的B-tree索引構建的,MySQL能夠在爲B-tree定義的任意長度的鍵的前綴上構建散列索引,這取決於對索引的搜索模式,哈希索引能夠是局部的,整個B-tree索引不須要緩存在緩衝池中。
  • 在MySQL 5.6或更高版本中,利用InnoDB錶快速單值查找的另外一種方法是使用InnoDB memcached插件。

AIO服務器

  • 異步I/O的縮寫,你可能在InnoDB消息或關鍵字中看到這個縮略詞。

應用程序編程接口(API)併發

  • 一組函數或程序,API爲函數、程序、參數和返回值提供一組穩定的名稱和類型。

applyapp

  • MySQL Enterprise Backup產品生成的備份不包含在備份過程當中發生的最新更改時,更新備份文件以包含這些更改的過程稱爲apply步驟,它由mysqlbackup命令的apply-log選項指定。
  • 在應用更改以前,咱們將這些文件稱爲原始備份,應用更改以後,咱們將這些文件稱爲準備好的備份,更改記錄在ibbackup_logfile文件中,一旦apply步驟完成,就再也不須要這個文件了。

異步I/O異步

  • 一種I/O操做,容許在I/O完成以前進行其餘處理,也稱爲非阻塞I/O,縮寫爲AIOInnoDB對某些操做使用這種類型的I/O,這些操做能夠並行運行,而不會影響數據庫的可靠性,好比將沒有實際請求的頁面讀入緩衝池,但可能很快就會須要。
  • 過去,InnoDB只在Windows系統上使用異步I/O,從InnoDB Plugin 1.1和MySQL 5.5開始,InnoDB在Linux系統上使用異步I/O,這個更改引入了對libaio的依賴。Linux系統上的異步I/O是使用innodb_use_native_aio選項配置的,該選項在默認狀況下是啓用的,在其餘類unix系統上,InnoDB只使用同步I/O。

原子

  • 在SQL上下文中,事務是工做單元,要麼徹底成功(提交時),要麼徹底無效(回滾時),事務不可分割(「atomic」)屬性是ACID中的「A」。

原子DDL

  • 原子DDL語句是將與DDL操做關聯的數據字典更新、存儲引擎操做和二進制日誌寫入組合到單個原子事務中的語句。事務要麼徹底提交,要麼回滾,即便服務器在操做期間暫停,原子DDL支持是在MySQL 8.0中添加的。

原子指令

  • 由CPU提供的特殊指令,以確保不能中斷關鍵的低級別操做。

自動遞增

  • 表列的一個屬性(由AUTO_INCREMENT關鍵字指定),該屬性自動在列中添加升序值。
  • 它爲開發人員節省了工做,沒必要在插入新行時生成新的唯一值,它爲查詢優化器提供了有用的信息,由於已知列不是null,而且具備唯一的值。此類列中的值能夠在各類上下文中用做查找鍵,由於它們是自動生成的,因此沒有理由更改它們,所以,主鍵列一般指定爲自動遞增。
  • 對於基於語句的複製,自動遞增列可能會有問題,由於因爲時間問題,在從服務器上從新執行語句可能不會生成與主服務器上相同的列值集。當你有一個自動遞增的主鍵時,你只能在設置innodb_autoinc_lock_mode=1的狀況下使用基於語句的複製。若是你的innodb_autoinc_lock_mode=2,它容許更高的插入操做併發性,那麼使用基於行的複製而不是基於語句的複製。除非出於兼容性的目的,不然不該該使用innodb_autoinc_lock_mode=0設置。
  • 連續鎖模式(innodb_autoinc_lock_mode=1)是MySQL 8.0.3以前的默認設置,從MySQL 8.0.3開始,交錯鎖模式(innodb_autoinc_lock_mode=2)是默認模式,它反映了從基於語句的複製到基於行復制的更改,做爲默認複製類型。

自動遞增鎖定

  • 自動遞增主鍵的便利性涉及到併發性的一些權衡,在最簡單的狀況下,若是一個事務正在向表中插入值,那麼任何其餘事務都必須等待它們本身插入該表,以便第一個事務插入的行接收連續的主鍵值。InnoDB包含優化和innodb_autoinc_lock_mode選項,這樣你就能夠在可預測的自動遞增值序列和插入操做的最大併發性之間進行配置和優化平衡。

自動提交

  • 在每一個SQL語句以後引起提交操做的設置,不推薦使用這種模式來處理具備跨多個語句的事務的InnoDB表。它能夠幫助InnoDB表上的只讀事務的性能,尤爲是在MySQL 5.6.4及以上版本中,它將鎖定和生成撤銷數據帶來的開銷降到最低,它也適用於處理不適用事務的MyISAM表。

可用性

  • 可以處理主機上的故障,並在必要時從故障中恢復,包括MySQL、操做系統或可能致使停機的硬件和維護活動的故障,一般,可伸縮性是大規模部署的關鍵方面。
相關文章
相關標籤/搜索