MySQL查询挂起

时间:2015-11-09 21:21:18

标签: mysql deadlock

如果我执行以下查询

select * from medienkatalog_nct.sphinx_index limit 380000, 10000

查询永远挂起状态"无"和"关闭表"。

explain select * from medienkatalog_nct.sphinx_index;

# id, select_type, table, type, possible_keys, key, key_len, ref, rows, Extra
1   SIMPLE  katalognummer   index   PRIMARY,artikelNr,katalognr,idvideothek artikelNr   4       275870  Using index
1   SIMPLE  artikel ref PRIMARY PRIMARY 4   medienkatalog_nct.katalognummer.katalogNr   1   
1   SIMPLE  artikel eq_ref  PRIMARY,id_artikelnr    PRIMARY 4   medienkatalog_nct.katalognummer.artikelNr   1   
1   SIMPLE  relation_kategorie  ref PRIMARY PRIMARY 4   medienkatalog_nct.artikel.artikelNr 1   Using index
1   SIMPLE  kategorie   eq_ref  PRIMARY PRIMARY 4   medienkatalog_nct.relation_kategorie.id_kategorie   1   
1   SIMPLE  relation_inhalt ref PRIMARY PRIMARY 4   medienkatalog_nct.artikel.artikelNr 1   Using index
1   SIMPLE  inhalt  eq_ref  PRIMARY,id_inhalt   PRIMARY 4   medienkatalog_nct.relation_inhalt.id_inhalt 1   
1   SIMPLE  relation_medium ref PRIMARY PRIMARY 4   medienkatalog_nct.katalognummer.artikelNr   1   Using index
1   SIMPLE  medium  eq_ref  PRIMARY PRIMARY 4   medienkatalog_nct.relation_medium.id_medium 1   
1   SIMPLE  relation_plattform  ref PRIMARY PRIMARY 4   medienkatalog_nct.artikel.artikelNr 1   Using index
1   SIMPLE  plattform   eq_ref  PRIMARY PRIMARY 4   medienkatalog_nct.relation_plattform.id_plattform   1   
1   SIMPLE  relation_hersteller ref PRIMARY PRIMARY 4   medienkatalog_nct.artikel.artikelNr 1   Using index
1   SIMPLE  hersteller  eq_ref  PRIMARY,id_hersteller   PRIMARY 4   medienkatalog_nct.relation_hersteller.id_hersteller 1   
1   SIMPLE  relation_titel  eq_ref  PRIMARY PRIMARY 4   medienkatalog_nct.katalognummer.artikelNr   1   
1   SIMPLE  titel   eq_ref  id_titel    id_titel    4   medienkatalog_nct.relation_titel.id_titel   1   Using index
1   SIMPLE  relation_freigabe   ref PRIMARY PRIMARY 4   medienkatalog_nct.artikel.artikelNr 1   Using index
1   SIMPLE  freigabe    eq_ref  PRIMARY,id_freigabe PRIMARY 4   medienkatalog_nct.relation_freigabe.id_freigabe 1   
1   SIMPLE  media   eq_ref  PRIMARY PRIMARY 4   medienkatalog_nct.katalognummer.artikelNr   1   
1   SIMPLE  artikel_videothek   ref PRIMARY,i_katalognr,i_id_videothek  PRIMARY 4   medienkatalog_nct.katalognummer.katalogNr   5   Using where
1   SIMPLE  videothek   eq_ref  PRIMARY,INDEX   PRIMARY 4   medienkatalog_nct.artikel_videothek.id_videothek    1   Using where

编辑:SQL查询

CREATE 
ALGORITHM = UNDEFINED 
DEFINER = `dbadmin`@`%` 
SQL SECURITY DEFINER
VIEW `sphinx_index` AS
SELECT 
    ((`medienkatalog_nct`.`artikel_videothek`.`id_videothek` * 1000000000) + `medienkatalog_nct`.`artikel`.`artikelNr`) AS `pkey`,
    `medienkatalog_nct`.`fkey`(`medienkatalog_nct`.`artikel`.`artikelNr`,
            `medienkatalog_nct`.`media`.`key_media`) AS `fkey`,
    `medienkatalog_nct`.`artikel_videothek`.`id_videothek` AS `id_videothek`,
    `medienkatalog_nct`.`artikel`.`artikelNr` AS `artikelnr`,
    `medienkatalog_nct`.`artikel_videothek`.`katalognr` AS `katalognr`,
    `medienkatalog_nct`.`media`.`key_media` AS `key_media`,
    `medienkatalog_nct`.`media`.`has_werbebanner` AS `has_werbebanner`,
    `medienkatalog_nct`.`media`.`has_mailbanner` AS `has_mailbanner`,
    `medienkatalog_nct`.`media`.`has_animation` AS `has_animation`,
    `medienkatalog_nct`.`media`.`has_klappe` AS `has_klappe`,
    `medienkatalog_nct`.`media`.`has_klappeemo` AS `has_klappeemo`,
    `medienkatalog_nct`.`media`.`has_podcast` AS `has_podcast`,
    IF(ISNULL(`medienkatalog_nct`.`media`.`top20rang`),
        100,
        IF((`medienkatalog_nct`.`media`.`top20rang` = 0),
            50,
            `medienkatalog_nct`.`media`.`top20rang`)) AS `top20rang`,
    `medienkatalog_nct`.`media`.`has_trailer` AS `has_trailer`,
    `medienkatalog_nct`.`media`.`has_traileremo` AS `has_traileremo`,
    UNIX_TIMESTAMP(`medienkatalog_nct`.`media`.`verleihstart`) AS `verleihstart`,
    `medienkatalog_nct`.`media`.`has_vorschaubanner` AS `has_vorschaubanner`,
    TOP_PREIS(`medienkatalog_nct`.`artikel_videothek`.`id_videothek`,
            `medienkatalog_nct`.`artikel_videothek`.`katalognr`) AS `is_toppreis`,
    IF(((`nachbestellsystem`.`artikel`.`aktiv` = 1)
            AND (`nachbestellsystem`.`artikel`.`lieferbar` = 1)
            AND ISNULL(`nachbestellsystem`.`artikel`.`dekommissionierung`)),
        1,
        0) AS `is_kommission`,
    `medienkatalog_nct`.`kategorie`.`beschreibung` AS `kategorie`,
    `medienkatalog_nct`.`titel`.`titel` AS `titel`,
    `medienkatalog_nct`.`titel`.`titel` AS `titel_sort`,
    `medienkatalog_nct`.`str_to_ord`(`medienkatalog_nct`.`titel`.`titel`) AS `titel_ord`,
    `medienkatalog_nct`.`titel`.`untertitel` AS `untertitel`,
    `medienkatalog_nct`.`medium`.`id_medium` AS `id_medium`,
    `medienkatalog_nct`.`medium`.`beschreibung` AS `medium`,
    `medienkatalog_nct`.`plattform`.`id_plattform` AS `id_plattform`,
    `medienkatalog_nct`.`plattform`.`beschreibung` AS `plattform`,
    ID_VERSIONS(`medienkatalog_nct`.`artikel`.`artikelNr`) AS `vkey`,
    `medienkatalog_nct`.`version`(`medienkatalog_nct`.`artikel`.`artikelNr`) AS `version`,
    ID_GENRES(`medienkatalog_nct`.`artikel`.`artikelNr`) AS `gkey`,
    GENRE(`medienkatalog_nct`.`artikel`.`artikelNr`) AS `genre`,
    UNIX_TIMESTAMP(`medienkatalog_nct`.`artikel`.`artikelstart`) AS `artikelstart`,
    UNIX_TIMESTAMP(`medienkatalog_nct`.`artikel_videothek`.`erfassungsdatum`) AS `erfassungsdatum`,
    `medienkatalog_nct`.`hersteller`.`id_hersteller` AS `id_hersteller`,
    `medienkatalog_nct`.`hersteller`.`beschreibung` AS `hersteller`,
    ACTOR(`medienkatalog_nct`.`artikel`.`artikelNr`) AS `darsteller`,
    COUNTRY(`medienkatalog_nct`.`artikel`.`artikelNr`) AS `land`,
    DIRECTOR(`medienkatalog_nct`.`artikel`.`artikelNr`) AS `regie`,
    FORMAT(RANKING(`medienkatalog_nct`.`artikel`.`artikelNr`),
        2) AS `sterne`,
    COUNT_RANKING(`medienkatalog_nct`.`artikel`.`artikelNr`) AS `bewertungen`,
    ANZAHL_VL(`medienkatalog_nct`.`artikel_videothek`.`id_videothek`,
            `medienkatalog_nct`.`artikel`.`artikelNr`,
            (NOW() - INTERVAL 1 MONTH),
            NOW()) AS `anzahl_vl`,
    ANZAHL_VK(`medienkatalog_nct`.`artikel_videothek`.`id_videothek`,
            `medienkatalog_nct`.`artikel`.`artikelNr`,
            (NOW() - INTERVAL 1 MONTH),
            NOW()) AS `anzahl_vk`,
    `medienkatalog_nct`.`inhalt`.`beschreibung` AS `inhalt`,
    `medienkatalog_nct`.`inhalt`.`aufmacher` AS `aufmacher`,
    `medienkatalog_nct`.`relation_kategorie`.`id_kategorie` AS `id_kategorie`,
    `medienkatalog_nct`.`relation_titel`.`id_titel` AS `id_titel`,
    `medienkatalog_nct`.`relation_freigabe`.`id_freigabe` AS `id_freigabe`,
    `medienkatalog_nct`.`freigabe`.`beschreibung` AS `freigabe`,
    CONCAT(IF((`medienkatalog_nct`.`artikel_videothek`.`ist_verleih` <> 0),
                'Leihartikel ',
                ''),
            IF((`medienkatalog_nct`.`artikel_videothek`.`ist_gebraucht` <> 0),
                'Gebrauchtartikel Verkaufsartikel ',
                ''),
            IF(((`medienkatalog_nct`.`artikel_videothek`.`ist_verkauf` <> 0)
                    AND (`medienkatalog_nct`.`artikel_videothek`.`bestand_vk` > 0)),
                IF((`medienkatalog_nct`.`artikel_videothek`.`ist_gebraucht` = 0),
                    'Verkaufsartikel Neuware',
                    'Neuware'),
                '')) AS `artikelart`,
    `medienkatalog_nct`.`artikel_videothek`.`deleted` AS `deleted`
FROM
    (((((((((((((((((((`medienkatalog_nct`.`artikel`
    JOIN `medienkatalog_nct`.`katalognummer` ON ((`medienkatalog_nct`.`artikel`.`artikelNr` = `medienkatalog_nct`.`katalognummer`.`artikelNr`)))
    JOIN `medienkatalog_nct`.`artikel_videothek` ON (((`medienkatalog_nct`.`katalognummer`.`katalogNr` = `medienkatalog_nct`.`artikel_videothek`.`katalognr`)
        AND (`medienkatalog_nct`.`katalognummer`.`vtid` IN (0 , `medienkatalog_nct`.`artikel_videothek`.`id_videothek`)))))
    LEFT JOIN `medienkatalog_nct`.`relation_kategorie` ON ((`medienkatalog_nct`.`artikel`.`artikelNr` = `medienkatalog_nct`.`relation_kategorie`.`artikelNr`)))
    LEFT JOIN `medienkatalog_nct`.`kategorie` ON ((`medienkatalog_nct`.`relation_kategorie`.`id_kategorie` = `medienkatalog_nct`.`kategorie`.`id_kategorie`)))
    LEFT JOIN `medienkatalog_nct`.`relation_inhalt` ON ((`medienkatalog_nct`.`artikel`.`artikelNr` = `medienkatalog_nct`.`relation_inhalt`.`artikelNr`)))
    LEFT JOIN `medienkatalog_nct`.`inhalt` ON ((`medienkatalog_nct`.`relation_inhalt`.`id_inhalt` = `medienkatalog_nct`.`inhalt`.`id_inhalt`)))
    LEFT JOIN `medienkatalog_nct`.`relation_medium` ON ((`medienkatalog_nct`.`artikel`.`artikelNr` = `medienkatalog_nct`.`relation_medium`.`artikelNr`)))
    LEFT JOIN `medienkatalog_nct`.`medium` ON ((`medienkatalog_nct`.`relation_medium`.`id_medium` = `medienkatalog_nct`.`medium`.`id_medium`)))
    LEFT JOIN `medienkatalog_nct`.`relation_plattform` ON ((`medienkatalog_nct`.`artikel`.`artikelNr` = `medienkatalog_nct`.`relation_plattform`.`artikelNr`)))
    LEFT JOIN `medienkatalog_nct`.`plattform` ON ((`medienkatalog_nct`.`relation_plattform`.`id_plattform` = `medienkatalog_nct`.`plattform`.`id_plattform`)))
    LEFT JOIN `medienkatalog_nct`.`relation_hersteller` ON ((`medienkatalog_nct`.`artikel`.`artikelNr` = `medienkatalog_nct`.`relation_hersteller`.`artikelNr`)))
    LEFT JOIN `medienkatalog_nct`.`hersteller` ON ((`medienkatalog_nct`.`relation_hersteller`.`id_hersteller` = `medienkatalog_nct`.`hersteller`.`id_hersteller`)))
    LEFT JOIN `medienkatalog_nct`.`relation_titel` ON ((`medienkatalog_nct`.`artikel`.`artikelNr` = `medienkatalog_nct`.`relation_titel`.`artikelNr`)))
    LEFT JOIN `medienkatalog_nct`.`titel` ON ((`medienkatalog_nct`.`relation_titel`.`id_titel` = `medienkatalog_nct`.`titel`.`id_titel`)))
    LEFT JOIN `medienkatalog_nct`.`relation_freigabe` ON ((`medienkatalog_nct`.`artikel`.`artikelNr` = `medienkatalog_nct`.`relation_freigabe`.`artikelNr`)))
    LEFT JOIN `medienkatalog_nct`.`freigabe` ON ((`medienkatalog_nct`.`freigabe`.`id_freigabe` = `medienkatalog_nct`.`relation_freigabe`.`id_freigabe`)))
    LEFT JOIN `medienkatalog_nct`.`media` ON ((`medienkatalog_nct`.`artikel`.`artikelNr` = `medienkatalog_nct`.`media`.`artikelnr`)))
    JOIN `videotaxi`.`videothek` ON ((`medienkatalog_nct`.`artikel_videothek`.`id_videothek` = `videotaxi`.`videothek`.`id_videothek`)))
    LEFT JOIN `nachbestellsystem`.`artikel` ON ((`nachbestellsystem`.`artikel`.`katalogNr` = `medienkatalog_nct`.`katalognummer`.`katalogNr`)))
WHERE
    (((`medienkatalog_nct`.`artikel_videothek`.`ist_gebraucht` <> 0)
        OR (`medienkatalog_nct`.`artikel_videothek`.`ist_verleih` <> 0)
        OR (`medienkatalog_nct`.`artikel_videothek`.`ist_verkauf` <> 0))
        AND (`videotaxi`.`videothek`.`offen` <> 0)
        AND (`medienkatalog_nct`.`artikel_videothek`.`deleted` = 0))

该查询在上周工作了3年多。

有人有想法吗?

0 个答案:

没有答案