Prozesse: Waiting for table ... lock

Hallo beisammen,

in meiner Piwik Datenbank warten ständig Prozesse auf Ihre Ausführung:

±------±--------±-------±--------------------------------+
| db | Command | Time | State |
±------±--------±-------±--------------------------------+
| piwik | Execute | 41342 | Waiting for table metadata lock |
| piwik | Prepare | 45341 | Waiting for table metadata lock |
| piwik | Execute | 127708 | Waiting for table metadata lock |
| piwik | Prepare | 131679 | Waiting for table metadata lock |
| piwik | Prepare | 131679 | Waiting for table metadata lock |
| piwik | Prepare | 217845 | Waiting for table metadata lock |
| piwik | Execute | 127708 | Waiting for table metadata lock |
| piwik | Execute | 214164 | Waiting for table metadata lock |
| piwik | Execute | 214164 | Waiting for table metadata lock |
| piwik | Prepare | 304229 | Waiting for table metadata lock |
| piwik | Prepare | 392357 | Waiting for table metadata lock |
| piwik | Execute | 304229 | Waiting for table metadata lock |
| piwik | Execute | 388132 | Waiting for table metadata lock |
| piwik | Prepare | 392357 | Waiting for table metadata lock |
| piwik | Execute | 476795 | Waiting for table metadata lock |
| piwik | Execute | 476795 | Waiting for table level lock |
±------±--------±-------±--------------------------------+

Die Befehle die ausgeführt werden sollen sind z.B.:

SELECT idarchive FROM piwik_archive_numeric_2008_12 WHERE name LIKE ‘done%’ AND (( value = 3 AND ts_archived < ?) OR value = 2)

OPTIMIZE TABLE piwik_archive_numeric_2008_12,piwik_archive_numeric_2016_01,piwik_archive_numeric_2016_09,piwik_archive_numeric_2016_10,piwik_archive_numeric_2016_11,piwik_archive_numeric_2016_12,piwik_archive_numeric_2017_01,piwik_archive_numeric_2017_02,piwik_archive_numeric_2017_03,piwik_archive_numeric_2017_04,piwik_archive_numeric_2017_05,piwik_archive_numeric_2017_06,piwik_archive_numeric_2017_07,piwik_archive_numeric_2017_08,piwik_archive_numeric_2017_09,piwik_archive_numeric_2017_10,piwik_archive_numeric_2017_11,piwik_archive_blob_2008_12,piwik_archive_blob_2016_01,piwik_archive_blob_2016_09,piwik_archive_blob_2016_10,piwik_archive_blob_2016_11,piwik_archive_blob_2016_12,piwik_archive_blob_2017_01,piwik_archive_blob_2017_02,piwik_archive_blob_2017_03,piwik_archive_blob_2017_04,piwik_archive_blob_2017_05,piwik_archive_blob_2017_06,piwik_archive_blob_2017_07,piwik_archive_blob_2017_08,piwik_archive_blob_2017_09,piwik_archive_blob_2017_10,piwik_archive_blob_2017_11

Das mysteriöse an der Sache ist, dass die Datenbank erst seit dem Septemer 2016 läuft. Aus diesem Grund dachte ich, dass das Löschen folgender Tabellen und töten der Prozesse das Problem löst:

piwik_archive_numeric_2008_12
piwik_archive_numeric_2016_01
piwik_archive_blob_2008_12
piwik_archive_blob_2016_01

Es ist aber so, dass die Tabellen und danach die Prozesse nach einiger Zeit wieder auftauchen.

Wie kann ich die Tabellen vor Septemer 2016 dauerhaft löschen und die “Waiting for table metadata lock” und “Waiting for table level lock” vermeiden?

Vielen Dank im Voraus.

Piwik: 3.2
DB: Maria 10.1.28

Grüße
Webdroid

Interessant wäre, welche Query gerade ausgeführt wird, während die anderen Warten. Wahrscheinlich ist das ein OPTIMIZE. Auf größeren Tabellen kann der Befehl relativ lang dauern und blockiert weitere Anfragen.

In der Config (Sektion [General]) kann das automatisierte Ausführen der Optimize-Queries deaktiviert werden:

[General]
enable_sql_optimize_queries = 0

Ja, das war ein OPTIMIZE Statement.
Nach der Einstellung kommt es nicht mehr zu einem LOCK.
Allerdings werden diese Tabellen immer wieder erzeugt und ich kann nicht herausfinden, was dies verursacht.

piwik_archive_numeric_2008_12
piwik_archive_numeric_2016_01
piwik_archive_blob_2008_12
piwik_archive_blob_2016_01

Vielen Dank ;.)