Puncte:0

OPTIMIZE TABLE fișier innodb per tabel în timp ce sistemul rulează

drapel kr

Am avut un fișier de bază de date Moodle de 800 GB mdl_logstore_standard_log.ibd. Am șters aproximativ 900 de milioane de rânduri în 10-15 zile. Fișierul .idb avea aproximativ 800 GB și încă avea aceeași dimensiune după ștergere. Vreau să optimizez tabelul ca să pot remedia acest lucru.

Este sigur să rulați OPTIMIZE TABLE în timp ce utilizatorii continuă să folosească pagina web moodle? Sau ar trebui să opresc utilizatorii să acceseze și să ruleze OPTIMIZE TABLE?

Dacă opresc accesul, trebuie să refac accesul în 48 de ore. În acest proces, dacă procesul de optimizare nu se termină, dacă trebuie să îl întrerup, voi avea o problemă?

Mulțumesc.

drapel in
Este sigur să o faceți din perspectiva datelor, dar probabil veți obține blocări de metadate, orice scriere în tabel probabil ar eșua pentru o perioadă. Ce se întâmplă este că se creează o copie și apoi se comută, în cel mai rău caz, restaurați din backup.
Puncte:1
drapel ua

Înainte de a trebui să faceți următoarea ștergere mare, citiți următorul blog și planificați să faceți ștergerea într-un mod mai eficient: http://mysql.rjweb.org/doc.php/deletebig

Între timp, utilizatorii pot continua să folosească tabelul, chiar dacă există mult spațiu irosit pe disc. Adică să nu faci nimic.

Dacă spațiul pe disc este o problemă, _și tabelul a fost creat în timp ce innodb_file_per_table a fost PE, cel OPTIMIZAȚI TABEL va micșora amprenta discului, cu un anumit cost al accesului utilizatorului. Este posibil să fi observat că Ștergerea a avut un impact asupra accesului utilizatorilor. (Blogul meu arată modalități de a evita un astfel de impact.)

Dacă nu faceți nimic, fișierul de 800 GB se va umple treptat cu rânduri nou Inserate. Acest lucru poate fi bine.

Şükrü Özdemir avatar
drapel kr
Buna ziua Am făcut ștergerea prin creșterea marcajului de timp php cu 100k secunde până când au fost 180 de zile de jurnal de la sfârșit până la început. Codul este cam asa: `DELETE FROM mdl_logstore_standard_log WHERE timecreated
drapel ua
@ÅükrüÃzdemir - Nu și nu. Diferența de performanță va fi minoră. Rularea tabelului `OPTIMIZE` va sta _probabil_ în calea utilizatorilor.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.