O esquema do banco de dados é o seguinte.
CREATE TABLE 'items' (
'id' mediumint( 8 ) unsigned NOT NULL AUTO_INCREMENT ,
'name' varchar( 45 ) NOT NULL ,
'main_type' tinyint( 4 ) NOT NULL ,
'rarity' tinyint( 4 ) NOT NULL ,
'stack_size' smallint( 6 ) NOT NULL ,
'sub_type' tinyint( 4 ) NOT NULL ,
'cost' mediumint( 8 ) unsigned NOT NULL ,
'ilvl' smallint( 6 ) unsigned NOT NULL DEFAULT '0',
'flavor_text' varchar( 250 ) NOT NULL ,
'rlvl' tinyint( 3 ) unsigned NOT NULL ,
'final' tinyint( 4 ) NOT NULL DEFAULT '0',
PRIMARY KEY ( 'id' ) ) ENGINE = InnoDB DEFAULT CHARSET = ascii;
Agora, fazer uma inserção nesta tabela leva 0,22 segundos. Eu não sei porque está demorando tanto para fazer uma inserção de linha única. As leituras são realmente muito rápidas, algo como 0,005 segundo. Com o uso da configuração de exemplo aqui dev mysql innodb ele calcula a média de ~ 0.002 para ~ 0,005 segundos. Por que leva mais de 100 vezes mais tempo para fazer uma única inserção não faz sentido para mim. Meu computador é o seguinte. SO: Debian Sid x86-x64, Mysql 5.1, RAM: 4GB ddr2, cpu 2.0Ghz dual core, HDD 7200RPM 32MB cache 640GB.
Por que está levando quase 100 vezes mais tempo para um SELECT * FROM items
; vs INSERT INTO items
...; nunca fará qualquer sentido para mim. Ainda é uma pequena mesa com apenas 70 linhas e demorou muito, mesmo quando tinha 0 linhas.
Edit: Também esta tabela tem algumas outras tabelas ligadas a si mesmo através do id. Há alguns deles por aí que estão ligados a ele e fazem uma atualização em cascata; em delete = cascade ;. Eu acredito que esse é o maior problema aqui. Se for então, eu provavelmente posso entrar e alterá-lo e fazer exclusões individuais das várias pequenas coisas quando elas forem removidas. A velocidade de inserção parece ser de ~ 0,2 segundos, quer eu esteja fazendo a inserção em apenas items
ou também fazendo isso em outra tabela que tenha um link de chave estrangeira para o principal.