inserir velocidade no mysql vs cassandra
Eu tenho muitos dados estruturais (cerca de 1 milhão em segundo) que devem ser inseridos no banco de dados. Eu vejo muitos benchmarks sobre sql vs noSql e o tipo de Nosql e depois coleciono cassandra como banco de dados.
mas eu crio um benchmark para testar mysql vs cassandra em write / update / select speed mysql tem melhor desempenho no meu benchmark, quero saber qual é o meu erro ??
php use como linguagem de programaçãoYACassandraPDO ecataloniaframework use como driver php e PDO use como driver mysql
meu servidor é centOS 6.5 com CPU de 2 núcleos e 2 GB de RAM, mysql e cassandra têm configuração padrão
detalhe do benchmark:Cassandra Keyspace e estrutura da família de colunas: CREATE KEYSPACE test2 WITH REPLICATION = {'class': 'SimpleStrategy', 'replication_factor': 1} AND Durable_writes = false;
CREATE TABLE test (
uuid int PRIMARY KEY,
symbol_id int,
bid int,
ask int,
time timestamp,
);
banco de dados mysql e estrutura da tabela: CREATE DataBasetest
;
CREATE TABLE `test` (
`id` INT NOT NULL ,
`symbol_id` int,
`bid` int,
`ask` int,
time timestamp,
PRIMARY KEY (id)
)ENGINE=MyISAM;
meu resultado de benchmark:Inserir cada registro 100000 no cassandra em cerca de 26s, Inserir cada registro 100000 no mysql em cerca de 11s
UPDATE cada 100000 em 24s em cerca de cassandra, UPDATE cada 100000 em 12s em cerca de mysql
SELECT cada 10000 em 741s em cerca de cassandra, SELECT cada 10000 em 21s em cerca de mysql
meu código php usa para benchmark:código cassandra:
$db_handle = new PDO("$dbtype:host=$dbhost;port=$dbport;cqlversion=3.0.0;dbname=$dbname", $dbuser, $dbpass);
while ($count < $rowNum){
$stmt = $db_handle->prepare("INSERT INTO test (uuid, symbol_id, bid, ask, time) values ($count, " . rand(1, 100) . ", " . rand(1, 10000) . ", ". rand(1, 10000).", dateof(now())); ");
$exec = $stmt->execute();
}
unset($db_handle);
código mysql:
$db_handle = new PDO("$dbtype:host=$dbhost;dbname=$dbname", $dbuser, $dbpass);
while ($count < $rowNum){
$stmt = $db_handle->prepare("INSERT INTO test (id, symbol_id, bid, ask, time) values ($count, " . rand(1, 100) . ", " . rand(1, 10000) . ", ". rand(1, 10000).", now()); ");
$exec = $stmt->execute();
}
unset($db_handle);