J'ai remarqué qu'un de mes scripts est devenu très lent, puis j'ai réduit le problème: c'était une requête de mise à jour. La chose étrange est que la requête SELECT est très rapide. La table compte environ 600 000 entrées. Et oui, id est UNIQUE PRIMARY KEY. Voici quelques exemples:Requête UPDATE extrêmement lente
SELECT * FROM `tmp_pages_data` WHERE id = 19080 LIMIT 0 , 30
Showing rows 0 - 0 (1 total, Query took 0.0004 sec)
Et maintenant la requête de mise à jour:
UPDATE tmp_pages_data SET page_status = 1 WHERE id = 19080
1 row(s) affected. (Query took 24.5968 sec)
Comme vous pouvez le voir, la sélection est très rapide, mais la mise à jour est veery lent. Comment est-ce possible?
S'il vous plaît ajouter la structure de votre schéma, et en particulier les indices. Ecrivez également la taille et le type du moteur d'index –
Ok, voici à quoi ressemble la table: CREATE TABLE IF NOT EXISTS 'tmp_pages_data' ( ' id' int (10) unsigned NON NULL AUTO_INCREMENT, 'site_id' int (11) DEFAULT NULL, 'url' varchar (255) DEFAULT NULL, NULL ' date_added' datetime DEFAULT, 'page_status' tinyint (4) DEFAULT NULL, ' page_type' varchar (255) NULL DEFAULT, 'title_normal' varchar (255) DEFAULT NULL, 'cat_id' int (11) DEFAULT NULL, ' title_id' int (11) NULL DEFAULT, clé primaire ('id'), KEY' url' ('url') ) = MOTEUR MySAM DEFAULT CHARSET = latin1 AUTO_INCREMENT = 658002; – okaybmd
Indices: PRIMARY (BTREE) unique: Oui emballé: Non \t Champ: id \t Cardinalité: 658001 Classement: A \t Null: Non; Index: url (BTREE) \t unique: Non \t emballé: Non \t terrain: url \t Cardinalité: 658001 \t Collation: A \t Null: OUI – okaybmd