What is the best mysql table format for high insert load? -
I'm in the process of adding a new feature to a system. The process will teach live data from the PLC and store them in the database. The data table will contain 4 columns: variable_id (SMALLINT), timestamp (timestamp), value (flow), quality (TINIINT). Is the primary key (variable_id, timestamp).
The system should be able to insert 1000-2000 records per second.
The data table will retain data from the past 24 hours, old data is removed from the table.
The data table also needs to handle every other 5-10 selection details. Selecting the latest value from the selection statement table for a specific variable and displaying it on the web.
Should I use the MySam or InDebbi table format? Does the mismatch lock the whole table while inserts, thus blocking the selected statements from the web interface? Currently, all data tables in the data base are MyISAM tables.
Should I use MySam or InnoDB table format?
For any project that you read frequently and concurrently, you should use the InnoDB
.
By including MyISAM lock, can the entire table block the selected statements from the web interface?
with @@ concurrent_insert
, MyISAM
while the rows inserted at the end while reading concurrently from the second session Add.
However, if you ever do anything on INSERT
, then it may fail (i.e. the table will be locked).
The system should be able to insert 1000-2000 records per second.
It would be better to batch these inserts and make them in batches.
The data table will retain data in the last 24 hours, old data from the table will be deleted. Note that If your Inodi is very fast in terms of lines per second compared to the trans.
InnoDB
examines all the rows, not only those are affected. delete
statement will ever use a fullscall, the concurrent INSERTs
fail (because the full span InnoDB
is the last spacing Including the difference lock on all the browsed browsing records).
Comments
Post a Comment