CSV

The CSV storage engine stores table data in plain text files using comma-separated values format – the same .CSV file that other tools such as spreadsheet programs can read directly. This makes it convenient for exchanging data with external, non-MySQL processes, but it comes without indexing or transactional guarantees. See Storage Engines for how it compares to the others.

FeatureCSV
Storage limitsNone
TransactionsNo
Locking granularityTable
MVCCNo
Geospatial data type supportYes
Geospatial indexing supportNo
B-tree indexesNo
T-tree indexesNo
Hash indexesNo
Full-text search indexesNo
Clustered indexesNo
Data cachesNo
Index cachesNo
Compressed dataNo
Encrypted dataNo
Cluster database supportNo
Replication supportYes
Foreign key supportNo
Backup / point-in-time recoveryYes (copy the .CSV file directly)
Query cache supportNo
Update statistics for data dictionaryYes
Because CSV tables have no indexes, every query against one performs a full table scan; they are best used as a staging area for importing/exporting data rather than for querying directly – see Backup and Recovery for LOAD DATA and SELECT ... INTO OUTFILE, which produce and consume the same delimited text format.

CREATE TABLE feed_import (
    sku VARCHAR(20),
    price DECIMAL(10,2),
    updated_at DATETIME
) ENGINE = CSV;

-- The underlying file (feed_import.CSV in the database directory) can be
-- edited directly with any external tool, then read back immediately
SELECT * FROM feed_import;

-- Typically used only as a staging table before loading into InnoDB
CREATE TABLE feed_final LIKE feed_import;
ALTER TABLE feed_final ENGINE = InnoDB;
INSERT INTO feed_final SELECT * FROM feed_import;