MySQL Archive存儲引擎

来源:http://www.cnblogs.com/chenmh/archive/2016/08/30/5821844.html
-Advertisement-
Play Games

介紹 從archive單詞的解釋我們大概可以明白這個存儲引擎的用途,這個存儲引擎基本上用於數據歸檔;它的壓縮比非常的高,存儲空間大概是innodb的10-15分之一所以它用來存儲歷史數據非常的適合,由於它不支持索引同時也不能緩存索引和數據,所以它不適合作為併發訪問表的存儲引擎。Archivec存儲引 ...


介紹

 從archive單詞的解釋我們大概可以明白這個存儲引擎的用途,這個存儲引擎基本上用於數據歸檔;它的壓縮比非常的高,存儲空間大概是innodb的10-15分之一所以它用來存儲歷史數據非常的適合,由於它不支持索引同時也不能緩存索引和數據,所以它不適合作為併發訪問表的存儲引擎。Archivec存儲引擎使用行鎖來實現高併發插入操作,但是它不支持事務,其設計目標只是提供高速的插入和壓縮功能。

 

 

 

特點

每個archive表在磁碟上存在兩個文件

.frm(存儲表定義)

.arz(存儲數據)

 

1.archive存儲引擎支持insert、replace和select操作,但是不支持update和delete。

2.archive存儲引擎支持blob、text等大欄位類型。支持auto_increment自增列同時自增列可以不是唯一索引。

3.archive支持auto_increment列,但是不支持往auto_increment列插入一個小於當前最大的值的值。

4.archive不支持索引所以無法在archive表上創建主鍵、唯一索引、和一般的索引。

 

存儲

往archive表插入的數據會經過壓縮,archive使用zlib進行數據壓縮,archive支持optimize table、 check table操作。

一個insert語句僅僅往壓縮緩存中插入數據,插入的數據在壓縮緩存中被鎖定,當select操作時會觸發壓縮緩存中的數據進行刷新。insert delay除外。

對於一個bulk insert操作只有當它完全執行完才能看到記錄,除非在同一時刻還有其它的inserts操作,在這種情況下可以看到部分記錄,select從不刷新bulk insert除非在它載入時存在一般的Insert操作。

 

檢索

對於檢索請求返回的行不會壓縮,且不會進行數據緩存;一個select查詢會執行完整的表掃描;當一個select查詢發生時它查找當前表所有有效的行,select執行一致性讀操作,註意,過多的select查詢語句會導致壓縮插入性能變的惡化,除非使用bulk insert或delay insert,可以使用OPTIMIZE TABLE 或REPAIR TABLE來獲取更好的壓縮,可以使用SHOW TABLES STATUS查看ARCHIVE表的記錄行。

 

分區

Archive存儲引擎支持分區

create table tb_archive(id int not null ,
name varchar(30),
address varchar(300),
mark text)engine=archive;
ALTER TABLE tb_archive 
PARTITION BY RANGE(id) PARTITIONS 3( PARTITION part0 VALUES LESS THAN (5),  PARTITION part1 VALUES LESS THAN (10),  PARTITION part2 VALUES LESS THAN (MAXVALUE)) ;

ALTER TABLE tb_archive 
PARTITION BY LIST COLUMNS (name) (
    PARTITION a VALUES IN ('A','B'),
    PARTITION b VALUES IN ('C'),
    PARTITION c VALUES IN ('D')
);

ALTER TABLE tb_archive 
PARTITION BY KEY(address)
PARTITIONS 3;

 

 

 

參考來自:http://dev.mysql.com/doc/refman/5.6/en/archive-storage-engine.html

總結

由於高壓縮和快速插入的特點Archive非常適合作為日誌表的存儲引擎,但是前提是不經常對該表進行查詢操作。

 

 

 

 

 

備註:

    作者:pursuer.chen

    博客:http://www.cnblogs.com/chenmh

本站點所有隨筆都是原創,歡迎大家轉載;但轉載時必須註明文章來源,且在文章開頭明顯處給明鏈接。

《歡迎交流討論》


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

-Advertisement-
Play Games
更多相關文章
  • 一、問題回顧 問題是git commit --amend 引起的。 一條commit已經push到遠端develop了,但是後來又在這條commit上進行了amend操作,導致這條commit的哈希碼發生了變化。並且後續又在這條commit之後進行了N條commit操作。 <Begin> 大概的情況 ...
  • 今天一同事反饋使用SQL Server 2012 Management Studio連接SQL Server 2014後,選擇資料庫中某個表,然後單擊右鍵時,就會遇到下麵錯誤: 這個錯誤初看以為是許可權問題,後面驗證、檢查、查找資料過後,發現這個是一個bug來的,需要升級或應用SQL Server M... ...
  • 一直想抽個時間整理下最近的所學,斷斷續續接觸hive也有半個多月了,大體上瞭解了很多Hive相關的知識。那麼,一般對陌生事物的認知都會經歷下麵幾個階段: 為什麼會出現?解決了什麼問題? 如何搭建?如何使用? 如何精通? 我會在本篇粗略的介紹下前兩個問題,然後給一些相關的資料。第三個問題,就得慢慢靠實 ...
  • Apache Spark是一個圍繞速度、易用性和複雜分析構建的大數據處理框架,最初在2009年由加州大學伯克利分校的AMPLab開發,並於2010年成為Apache的開源項目之一,與Hadoop和Storm等其他大數據和MapReduce技術相比,Spark有如下優勢: Spark提供了一個全面、統 ...
  • ...
  • 最近接觸了很多資料庫的東西,本來是一直接觸的是sql server,不過由於項目需要就開始對mysql進行了連接。下麵就讓我這個菜鳥淺談下經驗吧。 對於C++連接mysql,我不太喜歡多下載一個軟體mysqlodbc,所以採用的是通過mysql自己的API函數進行連接: 1、使用API的方式連接,需 ...
  • 先介紹一下環境: 我是異機恢復,和本機操作一樣。 一、 全量備份 步驟: ./innobackupex --user=root --password=root --host=172.17.210.112 --parallel=4 --throttle=400 --stream=tar /mysqlb ...
  • 由於工作需要,開始使用mysql資料庫,已經好久沒有使用了。基本已經忘了差不多。今天重新安裝配置了一下,寫個隨筆記錄一下,以免自己以後需要的時候翻看,如有不正確或需要補充的,希望大家多多留言。 首先下載mysql,我直接通過百度軟體中下載的“mysql-5.6.24-win32.1432006610 ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...