国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【MySQL系列】- 常用MySQL存儲引擎

這篇具有很好參考價值的文章主要介紹了【MySQL系列】- 常用MySQL存儲引擎。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

【MySQL系列】- 常用MySQL存儲引擎

數(shù)據庫存儲引擎是數(shù)據庫底層軟件組織,數(shù)據庫管理系統(tǒng)使用數(shù)據引擎進行創(chuàng)建、查詢、更新和刪除數(shù)據。不同的存儲引擎提供不同的存儲機制、索引機制、鎖定水平等功能。不同的存儲引擎,都有其特定的功能及特定應用場景。

MySQL常用存儲引擎有一下幾類:

1、InnoDB存儲引擎

InnoDB是事務性數(shù)據庫首選引擎,InnoDB從Mysql5.5.5開始就成為數(shù)據默認的存儲引擎,是MySQL8.0之后最重要,使用最廣泛的存儲引擎。支持事務安全(ACID),支持行鎖定和外鍵。

InnoDB主要特性:
  • InnoDB支持事務:事務是數(shù)據庫操作的基本單位,它是一組數(shù)據庫操作的集合,要全部執(zhí)行成功,要么全部不執(zhí)行。InnoDB存儲引擎支持ACID事務,保證了數(shù)據庫的可靠性和一致性。

    在MySQL中,使用START TRANSCTION語句開啟一個事務,使用COMMOT語句提交事務,使用ROLLBACK語句回滾事務。

  • 執(zhí)行行級鎖:行級鎖是一種并發(fā)控制機制,它可以在不同事務之間實現(xiàn)數(shù)據的隔離性和一致性。InnoDB存儲引擎支持行級鎖,能夠提高并發(fā)性能和可擴展性。

    在MySQL中,可以使用SELECT … FOR UPDATE語句來獲取行級鎖,保證在更新操作時,其他事務不能修改行數(shù)據。

  • 支持MVCC:MVCC是一種多版本并發(fā)控制機制,它可以在不同事務之間實現(xiàn)數(shù)據的隔離性和一致性。InnoDB存儲引擎支持MVCC,能夠保證不同事務之間的隔離性和一致性。

    在MySQL中,可以使用READ COMMITTEND隔離級別來支持MVCC機制。在READ COMMITTED隔離級別下,每個事務只能看到已提交的數(shù)據版本,不能看到其他事務未提交的數(shù)據版本。

  • 支持外鍵:在MySQL中,可以使用FOREIGN KEY約束來支持外鍵約束。在創(chuàng)建表時,可以使用FOREIGN KEY語句定義外鍵約束,確保在進行數(shù)據操作時,關聯(lián)表之間的數(shù)據一致性。

  • 支持自動增長列:在MySQL中,可以使用AUTO_INCREMENT關鍵字定義自動增長列。在使用InnoDB存儲引擎時,自動增長列實現(xiàn)方式時在表中創(chuàng)建一個名為AUTO_INCREMENT的隱藏列,該列用于存儲下一個自動增長的值。

  • 支持崩潰恢復:InnoDB存儲引擎支持崩潰恢復,能夠保證數(shù)據庫在崩潰后可以快速恢復到正常狀態(tài)。當數(shù)據庫發(fā)生崩潰時,InnoDB存儲引擎會自動啟動崩潰恢復過程,將未完成的事務進行回滾或者重做,從而保證數(shù)據的一致性。

2、MyISAM存儲引擎

MyISAM基于ISAM存儲引擎,并對其進行擴展。在 Web,數(shù)據倉儲和其他應用環(huán)境使用的存儲引擎較多。MyISAM擁有較高的插入、查詢速度,但不支持事務和外鍵。

MyISAM主要特性:
  • 不支持事務
  • 表級鎖定:在MySQL中,MyISAM存儲引擎中,當發(fā)生數(shù)據更新時,會鎖定整個表,以防止其他會話對該表中數(shù)據的同時修改所致的混亂。這樣做可以使得操作簡單,但是會減少并發(fā)量。
  • 讀寫相互阻塞:在MyISAM類型表中,即不可以在向數(shù)據表中寫入數(shù)據的同時另一個會話也向該表寫入數(shù)據,也不允許其他的會話讀取該表中的數(shù)據。只允許多個會話同時讀取該數(shù)據表中的數(shù)據。
  • 只會緩存索引,不會緩存數(shù)據:緩存,是指數(shù)據庫在訪問磁盤數(shù)據時,將更多的數(shù)據讀取進入內存,這樣可以使得當訪問這些數(shù)據時,直接從內存中讀取而不是再次訪問硬盤。MyISAM可以通過key_buffer_size緩存索引,以減少磁盤I/O,提升訪問性能。MyISAM數(shù)據表并不會緩存數(shù)據。
  • 讀取速度較快,占用資源較少;
  • 不支持外鍵約束;
  • 支持全文索引;
MyISAM適用場景:
  • 不需要事務支持的場景;
  • 讀取操作比較多,寫入操作較少;
  • 數(shù)據并發(fā)較低的場景;
  • 硬件條件比較差的場景;
  • 在配置數(shù)據庫讀寫分離場景下,從庫可以使用MyISAM索引;

3、Memory存儲引擎

MySQL中Memory存儲引擎是一個置于內存中的表,其采用的存儲介質是內存。響應速度很快。但是當MySQL守護進程崩潰的時候數(shù)據會丟失。Memory存儲引擎是存儲的數(shù)據類型是長度不變的類型,blob/text類的數(shù)據類型不可用。

Memory存儲引擎特性:
  • 存儲瞬時非關鍵數(shù)據;

  • 內存存儲,可實現(xiàn)快速訪問和低延遲。

  • 只讀或讀取是主要數(shù)據訪問模式:每個基于MEMORY存儲引擎的表實際對應一個磁盤文件。該文件的文件名與表名相同,類型為frm類型。該文件中只存儲表的結構。而其數(shù)據文件,都是存儲在內存中,這樣有利于數(shù)據的快速處理,提高整個表的效率。值得注意的是,服務器需要有足夠的內存來維持MEMORY存儲引擎的表的使用。如果不需要了,可以釋放內存,甚至刪除不需要的表。

  • 支持數(shù)據類型有限:不支持Text和Blob數(shù)據類型,對于字符串類型的數(shù)據,只支持固定長度的行,VARCHAR會被自動存儲為CHAR類型。

  • 支持表級鎖:在訪問量比較大時,表級鎖會成為MEMORY存儲引擎的瓶頸。

  • 查詢中存在臨時表且表中有BLOB、TEXT類型的字段,那么在這個臨時表會自動轉化為MyISAM類型的表。性能會急劇降低。

  • 默認索引使用Hash索引。

  • 內存表特別大時,自動轉換為MyISAM類型實體表

4、CSV存儲引擎

CSV存儲引擎是以CSV文件的方式存儲數(shù)據。CSV是MySQL中相對比較簡單并方便的存儲引擎。它簡單是因為其創(chuàng)建和使用簡單。存儲文件是CSV文件,可以直接對CSV文件進行修改。CSV存儲引擎只有在MySQL5.0版本之后才支持。

CSV存儲引擎特性:
  • 數(shù)據以文本方式存儲:.CSV文件存儲表內容,CSM文件存儲表的元數(shù)據如表狀態(tài)和數(shù)據量,.frm文件存儲表結構信息。
  • 列不能為NULL;
  • 不支持索引;
  • 可對數(shù)據文件進行直接編輯

CSV存儲引擎的特性,決定CSV非常適合在數(shù)據庫中擔任中間交換表的角色。如對數(shù)據進行導入運維時,可以使用EXCEL轉為CSV中直接復制覆蓋表,并通過SQL語句對數(shù)據進行操作。文章來源地址http://www.zghlxwxcb.cn/news/detail-700859.html

到了這里,關于【MySQL系列】- 常用MySQL存儲引擎的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 【后端面經-數(shù)據庫】MySQL的存儲引擎簡介

    【后端面經-數(shù)據庫】MySQL的存儲引擎簡介

    目錄 MySQL的存儲引擎 0. 存儲引擎的查看和修改 1. MyISAM 2. InnoDB 3. MEMORY 4. MERGE 5. 總結 6. 參考博客 mysql主要有四類存儲引擎,目前主要使用InnoDB作為存儲引擎。 查看當前數(shù)據庫的默認存儲引擎 查看當前數(shù)據庫所支持的存儲引擎 查看支持事務處理的存儲引擎 設置新表的存儲引擎

    2024年02月08日
    瀏覽(31)
  • 1.7 【MySQL】常用存儲引擎

    1.7 【MySQL】常用存儲引擎

    MySQL 支持非常多種存儲引擎,我這先列舉一些: 存儲引擎 描述 ARCHIVE 用于數(shù)據存檔(行被插入后不能再修改) BLACKHOLE 丟棄寫操作,讀操作會返回空內容 CSV 在存儲數(shù)據時,以逗號分隔各個數(shù)據項 FEDERATED 用來訪問遠程表 InnoDB 具備外鍵支持功能的事務存儲引擎 MEMORY 置于內存

    2024年02月11日
    瀏覽(44)
  • mysql 數(shù)據庫引擎介紹

    mysql 數(shù)據庫引擎介紹

    一、數(shù)據庫引擎 ? ? 數(shù)據庫引擎是用于存儲、處理和保護數(shù)據的核心服務。利用數(shù)據庫引擎可控制訪問權限并快速處理事務,從而滿足企業(yè)內大多數(shù)需要處理大量數(shù)據的應用程序的要求。 使用數(shù)據庫引擎創(chuàng)建用于聯(lián)機事務處理或聯(lián)機分析處理數(shù)據的關系數(shù)據庫。這包括創(chuàng)建

    2024年02月14日
    瀏覽(89)
  • MySQL的數(shù)據庫引擎介紹

    MySQL的數(shù)據庫引擎介紹

    ? ? 數(shù)據庫引擎就是操作數(shù)據庫的一段程序或程序段,用于存儲、處理和保護數(shù)據的核心服務。 ????利用數(shù)據庫引擎可控制訪問權限并快速處理事務,從而滿足企業(yè)內大多數(shù)需要處理大量數(shù)據的應用程序的要求。數(shù)據庫應用項目是通過數(shù)據庫引擎與數(shù)據庫鏈接的。 ? ? 何為

    2024年02月06日
    瀏覽(97)
  • MySQL數(shù)據庫——MySQL修改存儲過程(ALTER PROCEDURE)

    在實際開發(fā)過程中,業(yè)務需求修改的情況時有發(fā)生,所以修改 MySQL 中的存儲過程是不可避免的。 MySQL 中通過 ALTER PROCEDURE 語句來修改存儲過程。下面將詳細講解修改存儲過程的方法。 MySQL 中修改存儲過程的語法格式如下: ALTER PROCEDURE 存儲過程名 [ 特征 ... ] 特征 指定了存儲

    2024年02月04日
    瀏覽(21)
  • 【MySQL 數(shù)據庫】9、存儲過程

    【MySQL 數(shù)據庫】9、存儲過程

    ?? 存儲過程是事先經過編譯并存儲在數(shù)據庫中的 SQL 語句的集合,調用存儲過程可以簡化應用開發(fā)人員的很多工作,減少數(shù)據在數(shù)據庫和應用服務器之間的傳輸,可以提高數(shù)據處理效率 ?? 存儲過程思想上很簡單:就是數(shù)據庫 SQL 語言層面的代碼封裝與重用 ?? 【封裝,復用

    2024年02月08日
    瀏覽(32)
  • 數(shù)據庫(MySQL)的存儲過程

    數(shù)據庫(MySQL)的存儲過程

    存儲過程是事先經過編譯并存儲在數(shù)據庫中的一段SQL 語句的集合,調用存儲過程可以簡化應用開發(fā)人員的很多工作,減少數(shù)據在數(shù)據庫和應用服務器之間的傳輸,對于提高數(shù)據處理的效率是有好處的。 存儲過程思想上很簡單,就是數(shù)據庫SQL 語言層面的代碼封裝與重用。 特點

    2024年02月10日
    瀏覽(39)
  • MySQL數(shù)據庫中的存儲過程以及存儲函數(shù)練習

    ?字段名? ? ?? 數(shù)據類型? ? ? ?主鍵?? ?外鍵?? ?非空 ? 唯一? ? 自增 ?? ???id? ? ? ? ? ? ?INT? ? ? ? ? ? ? ?是 ?? ? 否 ?? ? ?是? ? ? ?是? ? ? ? ? ?否 ?? name?? ?VARCHAR(50)? ?否 ?? ? 否 ?? ? ?是? ? ? ?否? ? ? ? ? ?否 ???glass ? VARCHAR(50)? ? ?否 ??

    2024年02月15日
    瀏覽(22)
  • mysql 海量數(shù)據設計:對數(shù)據庫存儲有深入研究

    索引: 聚簇索引 二級索引 聯(lián)合索引:最左匹配原則、自動優(yōu)化順序 索引優(yōu)化方向: 存儲空間 主鍵選擇:自增主鍵、隨機主鍵、業(yè)務主鍵 如何設計一個雪花算法: 正數(shù) + 時間戳 + 機器id(固定) + 服務id + 序號 雪花算法優(yōu)點: 高并發(fā)分布式環(huán)境下生成不重復 id,每秒可生成百

    2023年04月24日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包