mysql存儲引擎

来源:http://www.cnblogs.com/liufuming/archive/2017/07/25/7235592.html
-Advertisement-
Play Games

通常意義上,資料庫也就是數據的集合,具體到電腦上資料庫可以是存儲器上一些文件的集合或者一些記憶體數據的集合。 我們通常說的MySql資料庫,sql server資料庫等等其實是資料庫管理系統,它們可以存儲數據,並提供查詢和更新資料庫中的數據的功能等等。根據資料庫如何存儲數據和如何操作數據的實現機制不 ...


    通常意義上,資料庫也就是數據的集合,具體到電腦上資料庫可以是存儲器上一些文件的集合或者一些記憶體數據的集合。
    我們通常說的MySql資料庫,sql server資料庫等等其實是資料庫管理系統,它們可以存儲數據,並提供查詢和更新資料庫中的數據的功能等等。根據資料庫如何存儲數據和如何操作數據的實現機制不同,這些資料庫之間即有區別又有共同點。
    MySql資料庫是開放源代碼的關係型資料庫。目前,它可以提供的功能有:支持sql語言、子查詢、存儲過程、觸發器、視圖、索引、事務、鎖、外鍵約束和影像複製等。在後期,我們會詳細講解這些功能。
    同Oracle 和SQL Server等大型資料庫系統一樣,MySql也是客戶/伺服器系統並且是單進程多線程架構的資料庫。
    MySql區別於其它資料庫系統的一個重要特點是支持插入式存儲引擎。

那麼什麼是存儲引擎呢?

    存儲引擎說白了就是如何存儲數據、如何為存儲的數據建立索引和如何更新、查詢數據等技術的實現方法。因為在關係資料庫中數據的存儲是以表的形式存儲的,所以存儲引擎也可以稱為表類型(即存儲和操作此表的類型)。
    在Oracle 和SQL Server等資料庫中只有一種存儲引擎,所有數據存儲管理機制都是一樣的。而MySql資料庫提供了多種存儲引擎。用戶可以根據不同的需求為數據表選擇不同的存儲引擎,用戶也可以根據自己的需要編寫自己的存儲引擎。
MySql中有哪些存儲引擎?
     1 MyISAM:這種引擎是mysql最早提供的。這種引擎又可以分為靜態MyISAM、動態MyISAM 和壓縮MyISAM三種:
    靜態MyISAM如果數據表中的各數據列的長度都是預先固定好的,伺服器將自動選擇這種表類型。因為數據表中每一條記錄所占用的空間都是一樣的,所以這種表存取和更新的效率非常高。當數據受損時,恢復工作也比較容易做。
    動態MyISAM如果數據表中出現varchar、xxxtext或xxxBLOB欄位時,伺服器將自動選擇這種表類型。相對於靜態MyISAM,這種表存儲空間比較小,但由於每條記錄的長度不一,所以多次修改數據後,數據表中的數據就可能離散的存儲在記憶體中,進而導致執行效率下降。同時,記憶體中也可能會出現很多碎片。因此,這種類型的表要經常用optimize table 命令或優化工具來進行碎片整理。
    壓縮MyISAM以上說到的兩種類型的表都可以用myisamchk工具壓縮。這種類型的表進一步減小了占用的存儲,但是這種表壓縮之後不能再被修改。另外,因為是壓縮數據,所以這種表在讀取的時候要先時行解壓縮。
    但是,不管是何種MyISAM表,目前它都不支持事務,行級鎖和外鍵約束的功能。
    2 MyISAM Merge引擎:這種類型是MyISAM類型的一種變種。合併表是將幾個相同的MyISAM表合併為一個虛表。常應用於日誌和數據倉庫。
    3 InnoDB:InnoDB表類型可以看作是對MyISAM的進一步更新產品,它提供了事務、行級鎖機制和外鍵約束的功能。
    4 memory(heap):這種類型的數據表只存在於記憶體中。它使用散列索引,所以數據的存取速度非常快。因為是存在於記憶體中,所以這種類型常應用於臨時表中。
    5 archive:這種類型只支持select 和 insert語句,而且不支持索引。常應用於日誌記錄和聚合分析方面。
    當然MySql支持的表類型不止上面幾種。

引自:www.cnblogs.com/lina1006/archive/2011/04/29/2032894.html


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • s中判斷對象是否存在,寫法有很多種: 出自:http://www.ruanyifeng.com/blog/2011/05/how_to_judge_the_existence_of_a_global_object_in_javascript.html ...
  • 查找電腦埠的占用情況 例如查埠號5037(adb的埠)的占用情況 一、使用 netstat -ano命令 找到埠號為5037的,並且找到對應進程的PID 然後我們區windows任務管理器裡面找PID是5736的進程是什麼 找到為eclipse,說明找對了,因為eclipse會調用adb ...
  • 引言 根據拷貝內容的不同,分為深淺拷貝 深拷貝:指針賦值,且內容拷貝 淺拷貝:只是簡單的指針賦值 蘋果為什麼這麼設計呢?總結起來很簡單:即安全又省記憶體。但是要理解或者避免踩一些坑,還需要看下麵的介紹 記憶體 不得不先說到記憶體,又不得不說記憶體分區: "程式底層——程式如何在RAM ROM運行,記憶體分配與 ...
  • 前言 現在有一種說法,是開啟arc選項時,已經沒有棧上的block了,所以所有的block都不需要copy來拷貝到堆上了。那麼這個說法正確與否呢? 結論是這個說法必須是錯誤的,首先的一點就是arc只是編譯器幫助我們給對象自動增加retain,release方法,我們不需要手動的去管理這些成對出現的內 ...
  • 漢堡包菜單,也叫側邊欄菜單。它由三個堆疊線條(你可以形象的想象成漢堡包中上下的兩個麵包和中間的肉)的圖標用於表示菜單。點擊圖標時,會顯示可用的導航選項。很多設計師寫的有關漢堡包菜單設計的文章,都不看好這種設計。總結其缺點,主要體現在:1.可發現性較低;2.效率較低;3.與系統的導航模式衝突;4.不夠 ...
  • 在CentOS上安裝MySQL,參考網上的一些文章,整理了一下,希望可以幫到需要的朋友。 首先我們先查看一下自己的系統是否已經安裝了MySQL,因為有一些Linux發行版集成了MySQL資料庫,我們可以通過 命令來查看系統是否已經安裝了MySQL資料庫。 ![rpm命令結果][1] 如果已經安裝了M ...
  • 以上兩句都是將'源表'的數據插入到'目標表',但兩句又有區別的: 第一句(select into from)要求目標表不存在,因為在插入時會自動創建。 第二句(insert into select from)要求目標表存在,由於目標表已經存在,所以我們除了插入源表的欄位外,還可以插入常量,如例中的: ...
  • 筆者經過flask web(Miguel著,封面是一條狗)一書的學習,打算實現一個旅游類網站,在此過程中發現,相對於書中的flasky博客程式,需要作出一些改變: 1. 註冊郵箱:國內要使用126,qq等郵箱。預設讀者瞭解過flasky郵件的實現方式,而使用126、qq郵箱的不同之處有: 第一,郵箱 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...