mise à jour simple requête qui prend beaucoup de temps à s'exécuter dans MySQL

J'ai été vérifier la lenteur de la requête de log de MySQL, et a trouvé une entrée comme ci-dessous:

# Time: 131108  4:16:34

# Query_time: 14.726425  Lock_time: 0.000000 Rows_sent: 0  Rows_examined: 1
SET timestamp=1383884194;
UPDATE `Artist` SET ImageFilename = NULL, Title = 'Elton John', PopularityRating = 657, UniqueID = NULL, Description = NULL, IsFeatured = 0, FeaturedText = '', MetaDescription = '', MetaTitle = NULL, _Temporary_LastUpdOn = '2013-11-08 04:15:58 ', _Temporary_Flag = 0, _Deleted = 0, _DeletedOn = NULL, Priority = 0 WHERE ID = 3449748;

Comme vous pouvez le voir, il a fallu un nombre stupéfiant de 14.72 sec pour effectuer cette requête, lorsque c'est une simple mise à jour avec juste un WHERE par clé primaire. J'ai essayé de ré-exécution de la requête, mais maintenant, il en cours d'exécution dans 0.095 sec qui est beaucoup plus raisonnable.

Des idées comment je peux debug pourquoi à un moment donné il a fallu si longtemps?

Edit 1: query_cache% variables

mysql> SHOW variables where variable_name like 'query_cache%';
+------------------------------+-----------+
| Variable_name                | Value     |
+------------------------------+-----------+
| query_cache_limit            | 1048576   |
| query_cache_min_res_unit     | 4096      |
| query_cache_size             | 210763776 |
| query_cache_type             | ON        |
| query_cache_wlock_invalidate | OFF       |
+------------------------------+-----------+

Edit 2: Artiste de la table info

CREATE TABLE `artist` (
  `ID` bigint(20) NOT NULL,
  `ImageFilename` mediumtext,
  `Title` varchar(1000) DEFAULT NULL,
  `PopularityRating` int(11) DEFAULT '0',
  `UniqueID` mediumtext,
  `Description` mediumtext,
  `IsFeatured` tinyint(1) DEFAULT '0',
  `FeaturedText` mediumtext,
  `_Temporary_LastUpdOn` datetime DEFAULT '0001-01-01 00:00:00',
  `_Temporary_Flag` tinyint(1) DEFAULT '0',
  `_Deleted` tinyint(1) DEFAULT '0',
  `_DeletedOn` datetime DEFAULT NULL,
  `Priority` int(11) DEFAULT '0',
  `MetaDescription` varchar(2000) DEFAULT NULL,
  `MetaTitle` mediumtext,
  PRIMARY KEY (`ID`),
  KEY `_Temporary_Flag` (`_Temporary_Flag`),
  KEY `_Deleted` (`_Deleted`),
  KEY `Priority` (`Priority`),
  KEY `PopularityRating` (`PopularityRating`),
  KEY `Title` (`Title`(255)),
  KEY `IsFeatured` (`IsFeatured`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
Peut-être que la table a été verrouillée de l'époque.
Avez-vous des cache activé? Peut-être tiré par les cheveux, mais si une requête modifie les résultats mis en cache, puis une performance dip peut se produire.
Comment puis-je savoir si j'ai le cache activé?
exécuter ce SPECTACLE variables où variable_name comme " query_cache%';
Vous pouvez poster à la sortie de SHOW CREATE TABLE Artist, s'il vous plaît?

OriginalL'auteur Karl Cassar | 2013-11-08