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

【MySQL高級】——存儲引擎

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

【MySQL高級】——存儲引擎

一、查看存儲引擎

show engines;

【MySQL高級】——存儲引擎

二、設(shè)置系統(tǒng)默認(rèn)的存儲引擎

<1> 查看默認(rèn)的存儲引擎

show variables like '%storage_engine%'; 
#或 
SELECT @@default_storage_engine;

<2> 修改默認(rèn)的存儲引擎

1. 命令方式

SET DEFAULT_STORAGE_ENGINE=MyISAM;

2. 配置文件方式

修改配置文件my.cnf

default-storage-engine=MyISAM

重啟服務(wù)

systemctl restart mysqld.service

三、設(shè)置表的存儲引擎

??存儲引擎是負(fù)責(zé)對表中的數(shù)據(jù)進(jìn)行提取和寫入工作的,我們可以為不同的表設(shè)置不同的存儲引擎 ,也就是說不同的表可以有不同的物理存儲結(jié)構(gòu),不同的提取和寫入方式。

<1> 創(chuàng)建表時指定存儲引擎

CREATE TABLE 表名( 
建表語句; 
) ENGINE = 存儲引擎名稱;

<2> 修改表的存儲引擎

ALTER TABLE 表名 ENGINE = 存儲引擎名稱;

四、引擎介紹

<1> InnoDB

  1. MySQL從3.23.34a開始就包含InnoDB存儲引擎。大于等于5.5之后,默認(rèn)采用InnoDB引擎 。
  2. InnoDB是MySQL的默認(rèn)事務(wù)型引擎 ,它被設(shè)計用來處理大量的短期(short-lived)事務(wù)。可以確保事務(wù)的完整提交(Commit)和回滾(Rollback)。
  3. 除了增加和查詢外,還需要更新、刪除操作,那么,應(yīng)優(yōu)先選擇InnoDB存儲引擎。除非有非常特別的原因需要使用其他的存儲引擎,否則應(yīng)該優(yōu)先考慮InnoDB引擎。
  4. 數(shù)據(jù)文件結(jié)構(gòu):
    表名.frm 存儲表結(jié)構(gòu)(MySQL8.0時,合并在表名.ibd中)
    表名.ibd 存儲數(shù)據(jù)和索引
  5. InnoDB是 為處理巨大數(shù)據(jù)量的最大性能設(shè)計 。在以前的版本中,字典數(shù)據(jù)以元數(shù)據(jù)文件、非事務(wù)表等來存儲?,F(xiàn)在這些元數(shù)據(jù)文件被刪除了。比如:.frm ,.par ,.trn ,.isl ,.db.opt 等都在MySQL8.0中不存在了。
  6. 對比MyISAM的存儲引擎, InnoDB寫的處理效率差一些 ,并且會占用更多的磁盤空間以保存數(shù)據(jù)和索引。MyISAM只緩存索引,不緩存真實數(shù)據(jù);InnoDB不僅緩存索引還要緩存真實數(shù)據(jù), 對內(nèi)存要求較高 ,而且內(nèi)存大小對性能有決定性的影響。

<2> MyISAM

  1. MyISAM提供了大量的特性,包括全文索引、壓縮、空間函數(shù)(GIS)等,但MyISAM 不支持事務(wù)、行級鎖、外鍵 ,有一個毫無疑問的缺陷就是 崩潰后無法安全恢復(fù) 。
  2. 5.5之前默認(rèn)的存儲引擎
  3. 優(yōu)勢是訪問的 速度快 ,對事務(wù)完整性沒有要求或者以SELECT、INSERT為主的應(yīng)用
  4. 針對數(shù)據(jù)統(tǒng)計有額外的常數(shù)存儲。故而 count(*) 的查詢效率很高
  5. 數(shù)據(jù)文件結(jié)構(gòu):
    表名.frm 存儲表結(jié)構(gòu)
    表名.MYD 存儲數(shù)據(jù) (MYData)
    表名.MYI 存儲索引 (MYIndex)
  6. 應(yīng)用場景:只讀應(yīng)用或者以讀為主的業(yè)務(wù)

<3> CSV

??存儲數(shù)據(jù)時,以逗號分隔各個數(shù)據(jù)項。創(chuàng)建CSV表還會創(chuàng)建相應(yīng)的 元文件 ,用于 存儲表的狀態(tài) 和 表中存在的行數(shù) 。此文件的名稱與表的名稱相 同,后綴為 CSM。
【MySQL高級】——存儲引擎

<4> Memory

??Memory采用的邏輯介質(zhì)是內(nèi)存,響應(yīng)速度很快 ,但是當(dāng)mysqld守護(hù)進(jìn)程崩潰的時候 數(shù)據(jù)會丟失 。另外,要求存儲的數(shù)據(jù)是數(shù)據(jù)長度不變的格式,比如Blob和Text類型的數(shù)據(jù)不可用(長度不固定的)。

1. 特點(diǎn)

  1. Memory同時 支持哈希(HASH)索引 和 B+樹索引 。
  2. Memory表至少比MyISAM表要 快一個數(shù)量級 。
  3. MEMORY 表的大小是受到限制 的。表的大小主要取決于兩個參數(shù),分別是 max_rows 和
  4. max_heap_table_size 。其中,max_rows可以在創(chuàng)建表時指定;max_heap_table_size的大小默認(rèn)為16MB,可以按需要進(jìn)行擴(kuò)大。
  5. 數(shù)據(jù)文件與索引文件分開存儲。
  6. 缺點(diǎn):其數(shù)據(jù)易丟失,生命周期短?;谶@個缺陷,選擇MEMORY存儲引擎時需要特別小心。

2. 使用場景

  1. 目標(biāo)數(shù)據(jù)比較小 ,而且非常 頻繁的進(jìn)行訪問 ,在內(nèi)存中存放數(shù)據(jù),如果太大的數(shù)據(jù)會造成 內(nèi)存溢出 ??梢酝ㄟ^參數(shù) max_heap_table_size 控制Memory表的大小,限制Memory表的最大的大小。
  2. 如果 數(shù)據(jù)是臨時的 ,而且 必須立即可用 得到,那么就可以放在內(nèi)存中。
  3. 存儲在Memory表中的數(shù)據(jù)如果突然間 丟失的話也沒有太大的關(guān)系 。

五、引擎對比

【MySQL高級】——存儲引擎

六、MyISAM和InnoDB

【MySQL高級】——存儲引擎

七、InnoDB的優(yōu)勢

??InnoDB存儲引擎在實際應(yīng)用中擁有諸多優(yōu)勢,比如操作便利、提高了數(shù)據(jù)庫的性能、維護(hù)成本低等。如果由于硬件或軟件的原因?qū)е路?wù)器崩潰,那么在重啟服務(wù)器之后不需要進(jìn)行額外的操作。
??InnoDB崩潰恢復(fù)功能自動將之前提交的內(nèi)容定型,然后撤銷沒有提交的進(jìn)程,重啟之后繼續(xù)從崩潰點(diǎn)開始執(zhí)行。InnoDB存儲引擎在主內(nèi)存中維護(hù)緩沖池,高頻率使用的數(shù)據(jù)將在內(nèi)存中直接被處理。這種緩存方式應(yīng)用于多種信息,加速了處理進(jìn)程。
??在專用服務(wù)器上,物理內(nèi)存中高達(dá)80%的部分被應(yīng)用于緩沖池。如果需要將數(shù)據(jù)插入不同的表中,可以設(shè)置外鍵加強(qiáng)數(shù)據(jù)的完整性。更新或者刪除數(shù)據(jù),關(guān)聯(lián)數(shù)據(jù)將會被自動更新或刪除。如果試圖將數(shù)據(jù)插入從表,但在主表中沒有對應(yīng)的數(shù)據(jù),插入的數(shù)據(jù)將被自動移除。如果磁盤或內(nèi)存中的數(shù)據(jù)出現(xiàn)崩潰,在使用臟數(shù)據(jù)之前,校驗和機(jī)制會發(fā)出警告。當(dāng)每個表的主鍵都設(shè)置合理時,與這些列有關(guān)的操作會被自動優(yōu)化。插入、更新和刪除操作通過做改變緩沖自動機(jī)制進(jìn)行優(yōu)化。 InnoDB不僅支持當(dāng)前讀寫,也會緩沖改變的數(shù)據(jù)到數(shù)據(jù)流磁盤 。
??InnoDB的性能優(yōu)勢不只存在于長時運(yùn)行查詢的大型表。在同一列多次被查詢時,自適應(yīng)哈希索引會提高查詢的速度。使用InnoDB可以壓縮表和相關(guān)的索引,可以 在不影響性能和可用性的情況下創(chuàng)建或刪除索引 。對于大型文本和BLOB數(shù)據(jù),使用動態(tài)行形式,這種存儲布局更高效。通過查詢INFORMATION_SCHEMA庫中的表可以監(jiān)控存儲引擎的內(nèi)部工作。在同一個語句中,InnoDB表可以與其他存儲引擎表混用。即使有些操作系統(tǒng)限制文件大小為2GB,InnoDB仍然可以處理。 當(dāng)處理大數(shù)據(jù)量時,InnoDB兼顧C(jī)PU,以達(dá)到最大性能 。文章來源地址http://www.zghlxwxcb.cn/news/detail-426084.html

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

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

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • MySQL高級篇(存儲引擎InnoDB、MyISAM、Memory)

    MySQL高級篇(存儲引擎InnoDB、MyISAM、Memory)

    目錄 1、存儲引擎簡介 1.1、查詢建表語句,默認(rèn)存儲引擎:InnoDB 1.2、查看當(dāng)前數(shù)據(jù)庫支持的存儲引擎 1.3、創(chuàng)建表,并指定存儲引擎 2、?存儲引擎-InnoDB介紹 2.1、存儲引擎特點(diǎn) ?3、MyISAM存儲引擎 ?4、Memory存儲引擎 ?5、InnoDB、MyISAM、Memory的區(qū)別 ?6、存儲引擎的選擇 介紹:In

    2024年04月11日
    瀏覽(22)
  • MySQL高級篇復(fù)盤筆記(一)【存儲引擎、索引、SQL優(yōu)化、視圖、觸發(fā)器、MySQL管理】

    MySQL高級篇復(fù)盤筆記(一)【存儲引擎、索引、SQL優(yōu)化、視圖、觸發(fā)器、MySQL管理】

    ? 作者主頁:歡迎來到我的技術(shù)博客?? ? 個人介紹:大家好,本人熱衷于 Java后端開發(fā) ,歡迎來交流學(xué)習(xí)哦!( ̄▽ ̄)~* ?? 如果文章對您有幫助,記得 關(guān)注 、 點(diǎn)贊 、 收藏 、 評論 ?????? ?? 您的支持將是我創(chuàng)作的動力,讓我們一起加油進(jìn)步吧?。。???? 連接層

    2024年02月06日
    瀏覽(111)
  • MYSQL04高級_邏輯架構(gòu)剖析、查詢緩存、解析器、優(yōu)化器、執(zhí)行器、存儲引擎

    MYSQL04高級_邏輯架構(gòu)剖析、查詢緩存、解析器、優(yōu)化器、執(zhí)行器、存儲引擎

    ①. 服務(wù)器處理客戶端請求 ②. 連接層 系統(tǒng)(客戶端)訪問MySQL服務(wù)器前,做的第一件事就是建立TCP連接 經(jīng)過三次握手建立連接成功后,MySQL服務(wù)器對TCP傳輸過來的賬號密碼做身份認(rèn)證、權(quán)限獲取 用戶名或密碼不對,會收到一個Access denied for user錯誤,客戶端程序結(jié)束執(zhí)行用戶名密碼認(rèn)

    2024年02月12日
    瀏覽(57)
  • 【MySQL系列】- 常用MySQL存儲引擎

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

    2024年02月09日
    瀏覽(20)
  • 【MySQL入門】-- 認(rèn)識MySQL存儲引擎

    目錄 1.MySQL存儲引擎有什么用? 2.MySQL的存儲引擎有哪些?分別有什么特點(diǎn)? 3.存儲引擎的優(yōu)缺點(diǎn) 4.關(guān)于存儲引擎的操作 5. 存儲引擎的選擇? 6.InnoDB和MyISAM區(qū)別? 7.官方文檔 1.MySQL存儲引擎有什么用? MySQL之所以使用存儲引擎,是因為存儲引擎提供了不同的數(shù)據(jù)管理和存儲方式

    2024年02月09日
    瀏覽(20)
  • MySQL——存儲引擎

    MySQL——存儲引擎

    MySQL數(shù)據(jù)庫主要的存儲引擎:? ? ? ? MyISAM是MySQL的默認(rèn)數(shù)據(jù)庫引擎(5.5版之前),由早期的 ISAM (Indexed Sequential Access Method:有索引的順序訪問方法)所改良。雖然性能極佳,而且提供了大量的特性,包括全文索引、壓縮、空間函數(shù)等,但MyISAM不支持事務(wù)和行級鎖,而且最大

    2024年02月09日
    瀏覽(23)
  • MySQL—存儲引擎(下)

    MySQL—存儲引擎(下)

    ?? 作者:小劉在C站 ?? 個人主頁: 小劉主頁 ?? 每天分享云計算網(wǎng)絡(luò)運(yùn)維課堂筆記,努力不一定有回報,但一定會有收獲加油!一起努力,共赴美好人生! ?? 樹高千尺,落葉歸根人生不易,人間真情 前言 上一章講了存儲引擎,本章繼續(xù),從特點(diǎn)開始 目錄 MySQL 1.存

    2024年02月07日
    瀏覽(16)
  • MySQL—存儲引擎(上)

    MySQL—存儲引擎(上)

    ?? 作者:小劉在C站 ?? 個人主頁: 小劉主頁 ?? 每天分享云計算網(wǎng)絡(luò)運(yùn)維課堂筆記,努力不一定有回報,但一定會有收獲加油!一起努力,共赴美好人生! ?? 樹高千尺,落葉歸根人生不易,人間真情 目錄 1). 連接層 2). 服務(wù)層 3). 引擎層 4). 存儲層 存儲引擎介紹 1

    2024年02月07日
    瀏覽(21)
  • mysql索引、事務(wù)、存儲引擎

    索引的概念: 索引是一個排序的列表,在這個列表中存儲著索引的值和包含這個值的數(shù)據(jù)所在行的物理地址(類似于C語言的鏈表通過指針指向數(shù)據(jù)記錄的內(nèi)存地址)。 使用索引后可以不用掃描全表來定位某行的數(shù)據(jù),而是先通過索引表找到該行數(shù)據(jù)對應(yīng)的物理地址然后訪問

    2024年02月10日
    瀏覽(29)
  • MySQL事務(wù)與存儲引擎

    MySQL事務(wù)與存儲引擎

    是一種機(jī)制、一個操作序列,包含了一組數(shù)據(jù)庫操作命令,并且把所有的命令作為一個整體一起向系統(tǒng)提交或撤銷操作請求u,即這一組數(shù)據(jù)庫命令要么都執(zhí)行,要么都不執(zhí)行 是一個不可分割的工作邏輯單元,在數(shù)據(jù)庫系統(tǒng)上執(zhí)行并發(fā)操作,事務(wù)是最小的控制單元 適用于多用

    2024年02月09日
    瀏覽(30)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包