Wanneer ik een simpele delete query uit wil voeren moet ik daar erg lang op wachten. Ik vraag mij af of dit niet sneller kan.
Ik heb de volgende table:
'sample_data', type InnoDB, Collation: latin1_swedish_ci:
De lengte van de variabelen kunnen niet kleiner, ze zijn nu optimaal(kleiner geeft data verlies). Ik heb een INDEX op setID gemaakt.
Nu heb ik 1 set in de database staan met ID=1. De table is nu gevuld met 7.000.000 records. Totaal ongeveer 700MB aan data.
Nu voer ik een delete statement uit: (in dit geval gaat de hele database dus leeg)
DELETE FROM `sample_data` WHERE setID=1
Ik heb deze delete query op verschillende plekken uitgevoerd, console, phpmyadmin. Volgens phpmyadmin doet hij er zo lang over:
Deleted rows: 7036350 (Query took 516.6415 sec)
Ik heb geen ssh access tot de server, kan dus ook geen load bekijken, en ook niet of er veel I/O is.
De server is volgens mij een snelle bak, denk dual core opteron ~2ghz 4Gb ram. De Server wordt op dit moment niet door anderen gebruikt.
Overigens het inladen van de data gebeurd door het commando:
Query LOAD DATA LOCAL INFILE
Het in te laden bestand is circa 200MB groot en duurt 7 minuten om te laden. Ook vrij lang als je het mij vraagt.
Mogelijk antwoorden:
- logisch, je moet 7M records verwijderen
- dit duurt wel lang normaal gesproken, maar dit is erg overdreven
- dit duurt veels te lang, je bent iets vergeten
- dit duurt veels te lang, je config van dje mysql is niet goed.
- we kunnen er niets overzeggen, we hebben meer info van jou en/of over de server nodig.
Ik heb de volgende table:
'sample_data', type InnoDB, Collation: latin1_swedish_ci:
setID | mediumint(4) | UNSIGNED |
sampleID | mediumint(6) | UNSIGNED |
peakNR | int(6) | UNSIGNED |
amplitude_measured | float(8,2) | UNSIGNED |
noise_measured | smallint(4) | UNSIGNED |
mass_measured | int(12) | UNSIGNED |
ret_measured | int(9) | UNSIGNED |
De lengte van de variabelen kunnen niet kleiner, ze zijn nu optimaal(kleiner geeft data verlies). Ik heb een INDEX op setID gemaakt.
Nu heb ik 1 set in de database staan met ID=1. De table is nu gevuld met 7.000.000 records. Totaal ongeveer 700MB aan data.
Nu voer ik een delete statement uit: (in dit geval gaat de hele database dus leeg)
DELETE FROM `sample_data` WHERE setID=1
Ik heb deze delete query op verschillende plekken uitgevoerd, console, phpmyadmin. Volgens phpmyadmin doet hij er zo lang over:
Deleted rows: 7036350 (Query took 516.6415 sec)
Ik heb geen ssh access tot de server, kan dus ook geen load bekijken, en ook niet of er veel I/O is.
De server is volgens mij een snelle bak, denk dual core opteron ~2ghz 4Gb ram. De Server wordt op dit moment niet door anderen gebruikt.
Overigens het inladen van de data gebeurd door het commando:
Query LOAD DATA LOCAL INFILE
Het in te laden bestand is circa 200MB groot en duurt 7 minuten om te laden. Ook vrij lang als je het mij vraagt.
Mogelijk antwoorden:
- logisch, je moet 7M records verwijderen
- dit duurt wel lang normaal gesproken, maar dit is erg overdreven
- dit duurt veels te lang, je bent iets vergeten
- dit duurt veels te lang, je config van dje mysql is niet goed.
- we kunnen er niets overzeggen, we hebben meer info van jou en/of over de server nodig.