The ARCHIVE storage engine was added in MySQL
      4.1.3. It is used for storing large amounts of data without
      indexes in a very small footprint.
    
      The ARCHIVE storage engine is included in MySQL
      binary distributions. To enable this storage engine if you build
      MySQL from source, invoke configure with the
      --with-archive-storage-engine option.
    
      To examine the source for the ARCHIVE engine,
      look in the sql directory of a MySQL source
      distribution.
    
      You can check whether the ARCHIVE storage
      engine is available with this statement:
    
mysql> SHOW VARIABLES LIKE 'have_archive';
      When you create an ARCHIVE table, the server
      creates a table format file in the database directory. The file
      begins with the table name and has an .frm
      extension. The storage engine creates other files, all having
      names beginning with the table name. The data and metadata files
      have extensions of .ARZ and
      .ARM, respectively. An
      .ARN file may appear during optimization
      operations.
    
      The ARCHIVE engine supports
      INSERT and
      SELECT, but not
      DELETE,
      REPLACE, or
      UPDATE. It does support
      ORDER BY operations,
      BLOB columns, and basically all but
      spatial data types (see
      Section 16.4.1, “MySQL Spatial Data Types”). The
      ARCHIVE engine uses row-level locking.
    
      Storage: Rows are compressed as
      they are inserted. The ARCHIVE engine uses
      zlib lossless data compression (see
      http://www.zlib.net/). You can use
      OPTIMIZE TABLE to analyze the table
      and pack it into a smaller format (for a reason to use
      OPTIMIZE TABLE, see later in this
      section). There are several types of insertions that are used:
    
          An INSERT statement just pushes
          rows into a compression buffer, and that buffer flushes as
          necessary. The insertion into the buffer is protected by a
          lock. A SELECT forces a flush
          to occur, unless the only insertions that have come in were
          INSERT DELAYED (those flush as
          necessary). See Section 12.2.4.2, “INSERT DELAYED Syntax”.
        
          A bulk insert is visible only after it completes, unless other
          inserts occur at the same time, in which case it can be seen
          partially. A SELECT never
          causes a flush of a bulk insert unless a normal insert occurs
          while it is loading.
        
      Retrieval: On retrieval, rows are
      uncompressed on demand; there is no row cache. A
      SELECT operation performs a
      complete table scan: When a SELECT
      occurs, it finds out how many rows are currently available and
      reads that number of rows. SELECT
      is performed as a consistent read. Note that lots of
      SELECT statements during insertion
      can deteriorate the compression, unless only bulk or delayed
      inserts are used. To achieve better compression, you can use
      OPTIMIZE TABLE or
      REPAIR TABLE. The number of rows in
      ARCHIVE tables reported by
      SHOW TABLE STATUS is always
      accurate. See Section 12.4.2.5, “OPTIMIZE TABLE Syntax”,
      Section 12.4.2.6, “REPAIR TABLE Syntax”, and
      Section 12.4.5.23, “SHOW TABLE STATUS Syntax”.
    
Additional Resources
          A forum dedicated to the ARCHIVE storage
          engine is available at
          http://forums.mysql.com/list.php?112.
        


User Comments
The ARCHIVE type does not support AUTO_INCREMENT columns (MySQL 5.0.45)
Add your own comment.