hosting 23 de ani
  • Despre noi
  • Ajutor
    • Detalii tehnice
    • Configurare client de email
    • Baza de cunoștințe
    • Tutoriale video
    • Tranfer FTP
  • Blog
  • Contact
  • ROMANIAN
    • ENGLISH 🇬🇧
    • ITALIAN 🇮🇹
    • GERMAN 🇦🇹🇩🇪
  • Despre noi
  • Ajutor
    • Detalii tehnice
    • Configurare client de email
    • Baza de cunoștințe
    • Tutoriale video
    • Tranfer FTP
  • Blog
  • Contact
  • ROMANIAN
    • ENGLISH 🇬🇧
    • ITALIAN 🇮🇹
    • GERMAN 🇦🇹🇩🇪
hosting 23 de ani
  • Găzduire web
  • Domenii
    Group 10
    Înregistrare domenii
    Peste 100 de extensii de domenii web
    Group 11
    Transfer domenii
    Transferă domeniul la Host-Age.ro
    Group 12
    Hosting DNS
    Hosting DNS gratuit pentru domeniul tău
    blogging
    Domenii .ro cu doar 6.4€
  • VPS
  • Servicii web
    Group 26
    Reseller hosting
    Începe să revinzi găzduire web
    Group 12
    Servere dedicate
    Servere dedicate găzduite în București
    Group 27
    Business Email​
    Business Email cu până la 600GB spațiu pe disc
    website builder
    Website builder
    Creează-ți gratuit propriul site în doar câteva minute
    web design
  • Certificate SSL
  • Despre noi
  • Ajutor
    Detalii tehnice
    Configurare client de e-mail
    Baza de cunoștințe
    Tutoriale video
    Tranfer FTP
  • Blog
  • Contact
  • Language
    ITALIAN 🇮🇹
    GERMAN 🇦🇹🇩🇪
    ENGLISH 🇬🇧
  • phone2
    acc2
mdi_code

Avansat

3
  • Cum vizualizezi site-ul înainte ca DNS-ul să se propage
  • Cum să accesezi sau să creezi fișierul .htaccess
  • Cum să ștergeți memoria cache locală
fluent_filter-12-filled

Backup

3
  • Cum pot restaura fișiere din backup?
  • Se face backup pentru contul meu?
  • Cum pot genera un full backup din cPanel
material-symbols_lock-outline

Certificate de securitate SSL

3
  • Migrare site la https cu certificat SSL
  • Generare certificat SSL gratuit
  • Diferențe între certificate SSL
ph_laptop

cPanel

6
  • Interval de rulare Cron Job
  • Adăugare utilizatori de cPanel – Manage Team
  • Cum pot recupera parola de cPanel/FTP?
  • Diferența dintre cPanel și WHM
  • Ce este limita de fișiere?
  • Softaculous Auto-Script Installer
material-symbols_pan-zoom

Diverse

12
  • Cum să creezi și să configurezi un fișier robots.txt
  • Am un domeniu, de ce e nevoie să iau și găzduire web?
  • Cum pot accesa panoul de administrare cPanel?
  • Site-ul afișează Resource Usage Limit sau Error 500
  • Site-ul meu poate rula pe HTTP/2?
  • Cum se poate mări spațiul contului meu de găzduire?
  • Serverul mi-a blocat IP-ul, cum îl pot debloca?
  • Unde sunt locate serverele de găzduire?
  • Adrese IP, IP dedicat vs IP partajat
  • Cum să depanezi codurile de eroare HTTP
  • Plugin-uri LiteSpeed pentru CMS-uri
  • Politica de abuz
mingcute_earth-2-line

Domenii Internet

10
  • Transfer drept de folosință al unui domeniu .ro
  • Cum obții cheia de transfer la un alt registrar pentru un domeniu .ro
  • Înregistrare domenii
  • Verificarea e-mail-ului proprietarului (ICANN / Conformitate NIS2)
  • Cum comand un domeniu pentru altcineva din contul meu de client?
  • Coduri de stare pentru domeniile web
  • De ce am domeniul suspendat?
  • Cum pot schimba DNS-urile unui domeniu?
  • După ce comand un domeniu, în cât timp va deveni activ?
  • Cum se transferă domeniile .ro de la alt registrar?
ic_outline-mail

E-mail

15
  • cPanel – Track Delivery: Ghid complet de urmărire a livrării emailurilor
  • Ce pot face ca email-urile mele să nu ajungă în Spam?
  • De ce au dispărut email-urile din Inbox?
  • Cum pot modifica în clientul de email un cont POP3 într-unul IMAP?
  • Ce dimensiune maximă pot avea e-mailurile?
  • Ce setări folosesc în clientul meu de e-mail?
  • Cum creez un cont de e-mail?
  • Cum pot citi e-mailurile din webmail?
  • De ce nu mai primesc e-mailuri?
  • De ce nu pot trimite e-mail?
  • Primesc foarte multe e-mailuri cu Mail Delivery Failed
  • Adăugare adresă de e-mail sau domeniu în whitelist
  • La accesarea webmail primesc eroare Internal Server Error – User userdecpanel is over quota
  • Cum se folosește funcția Track Delivery din cPanel?
  • Diferența dintre IMAP și POP3
Hosting DNS Gratuit

Hosting DNS

6
  • Activare Hosting DNS gratuit
  • Configurare zonă DNS pentru Shopify
  • Configurare zonă DNS pentru Google Workspace
  • Cum se configurează înregistrările DNS pentru Office 365
  • Editarea zonei DNS din cPanel
  • Configurare zonă DNS pentru iCloud Mail
system-uicons_coins

MySQL

3
  • Optimizarea și repararea MySQL cu phpMyAdmin
  • Nu mă pot conecta la baza de date MySQL
  • Cum se accesează phpMyAdmin din cPanel
material-symbols_code

Php

4
  • Cum să setezi o versiune diferită de PHP pentru un anumit folder
  • Sunt sigure versiunile de Php EOL?
  • Selectare versiune și opțiuni Php
  • Ce este și cum se folosește PHP X-Ray
ion_card-outline

Plăți / Facturare

9
  • Ce înseamnă suspendarea serviciilor pentru neplată?
  • Cum pot vedea situația plăților și a facturilor?
  • Plata cu cardul
  • Cum intru în posesia facturii după ce fac o plată?
  • Ce tip de entitate juridică este Host-Age.ro
  • Actualizare date cont client
  • Cum modificați perioada de facturare pentru un cont de găzduire
  • Reînnoire domenii web în avans
  • Cum faceți upgrade contului de găzduire web
carbon_security

Securitate

6
  • Cum se activează 2FA pentru cPanel
  • Cum se activează 2FA pentru zona de clienți
  • Cum se activează 2FA pentru Webmail
  • Ce permisiuni trebuie să aibă fișierele și folderele?
  • Fișiere încărcate pe server dispar imediat
  • Pagini din site au fost modificate și conțin viruși
ic_sharp-wordpress

WordPress

7
  • De ce site-ul WordPress se încarcă greu?
  • Cum să remediezi eroarea 404 și linkurile rupte în WordPress
  • De ce este important să îți actualizezi WordPress-ul și toate componentele sale
  • Cum să identifici și să rezolvi o problemă de „Critical Error” în WordPress
  • Instalare și configurare LiteSpeed Cache în WordPress
  • Cum să resetați parola de admin din WordPress
  • Ce este și cum se folosește AccelerateWP
prevânzare

Prevânzare

6
  • Cum transferi contul de găzduire la Host-Age.ro
  • Avantajele serverelor cu LiteSpeed Cache
  • Importanța unui IP dedicat pentru trimiterea emailurilor în Inbox (în special către Yahoo)
  • Pot beneficia de acces SSH în găzduirea shared?
  • Limitările tehnice ale pachetelor de hosting: RAM, CPU, EP, I/O, IOPS, NPROC, Inodes și emailuri
  • Cât durează migrarea datelor de la un alt furnizor?
VPS Kb

VPS

2
  • Cum să deschizi porturi pe VPS
  • Activare și configurare VPS
View Categories
  • Acasă
  • Baza de cunoștințe
  • MySQL
  • Optimizarea și repararea MySQL cu phpMyAdmin

Optimizarea și repararea MySQL cu phpMyAdmin

Acest articol te conduce, pas cu pas, prin tot ce poți face direct din phpMyAdmin pentru a-ți menține baza de date sănătoasă și rapidă: verificare, analiză, optimizare, reparații, indici, charset, collation, plus câteva rețete SQL utile. E scris pentru MySQL/MariaDB moderne și presupune că ai acces la phpMyAdmin și la un utilizator cu drepturi suficiente.

1) Înainte să începi (bază solidă)

  • Backup obligatoriu. Exportă baza (SQL) din phpMyAdmin: intră în baza de date → Export → „Personalizat” → include DROP + CREATE.
  • Fereastră de mentenanță. Operațiuni ca „Optimize/Analyze” blochează uneori tabelele. Fă-le când traficul e mic.
  • Cunoaște engine-ul.
    • InnoDB: implicit în MySQL 8+. „REPAIR TABLE” practic nu se aplică; „OPTIMIZE” reconstruiește tabelul (echivalent ALTER TABLE ... FORCE).
    • MyISAM: suportă REPAIR TABLE, dar ia în calcul migrarea la InnoDB.
  • Spațiu liber pe disc. Reconstrucția tabelelor cere spațiu temporar.
  • Permisiuni. Ai nevoie de ALTER, INDEX, LOCK TABLES etc. pentru multe operațiuni.

2) Unde găsești totul în phpMyAdmin

  • Selectează baza în coloana din stânga.
  • Tab-uri principale: Structure, SQL, Search, Query, Operations, Export/Import.
  • La nivel de bază de date: poți bifa mai multe tabele și folosi meniul With selected (jos) → Optimize table, Analyze table, Check table, Repair table.
  • La nivel de tabel: tab Operations → secțiunea Table maintenance (aceleași acțiuni).
  • Tab Structure (al tabelului): administrarea indicilor și a coloanelor.

3) Întreținerea de bază: Check / Analyze / Optimize / Repair

3.1 Check (verificare)

  • Ce face: rulează CHECK TABLE pentru corupții/erori evidente.
  • Cum: bifează tabelele → With selected → Check table.
  • Echivalent SQL:CHECK TABLE `nume_tabel` EXTENDED;
  • Interpretează rezultatul: status = OK e bine; orice altceva cere acțiuni (Optimize/Repair sau intervenție la nivel de server).

3.2 Analyze (statistici pentru optimizator)

  • Ce face: ANALYZE TABLE actualizează statisticile de index; poate accelera planurile de execuție.
  • Cum: With selected → Analyze table.
  • SQL:ANALYZE TABLE `nume_tabel`;
  • Când: după mase mari de INSERT/DELETE/UPDATE, sau dacă vezi planuri EXPLAIN ciudate.

3.3 Optimize (defragmentare & spațiu)

  • Ce face: OPTIMIZE TABLE (InnoDB → reconstruiește tabelul și reface indexurile; recuperează spațiu din „Overhead”).
  • Cum: With selected → Optimize table.
  • SQL:OPTIMIZE TABLE `nume_tabel`;
  • Când: când coloana Overhead din lista de tabele e mare, după multe ștergeri sau schimbări de lungime variabilă (TEXT/VARCHAR).

3.4 Repair (numai pentru MyISAM)

  • Ce face: REPAIR TABLE încearcă să repare chei/fișiere MyISAM.
  • Cum: With selected → Repair table (activ doar la MyISAM).
  • SQL:REPAIR TABLE `nume_tabel` QUICK;
  • Atenție: pentru InnoDB, „repair” nu se face așa. Dacă un tabel InnoDB pare corupt, e necesară intervenția la nivel de server (backup/restore, opțiuni de recovery), nu phpMyAdmin.

4) Indexare și optimizarea interogărilor

4.1 Găsește și creează indici potriviți (UI)

  • Intră în Structure (tabel) → secțiunea Indexes → Create index.
  • Pentru chei compuse (multi-coloană), ordinea coloanelor contează: pune primele coloanele cele mai selective, folosite în WHERE/JOIN/ORDER BY.

4.2 Operații SQL frecvente pentru indici

-- Creează index simplu:
CREATE INDEX idx_users_email ON users(email);

-- Index compus (căutăm des după (status, created_at)):
CREATE INDEX idx_orders_status_created ON orders(status, created_at);

-- Index unic (asigură unicitate + accelerează căutările):
CREATE UNIQUE INDEX ux_users_email ON users(email);

-- Șterge un index (evită dublurile inutile):
DROP INDEX idx_vechi ON users;

-- Vezi indici existenți:
SHOW INDEX FROM users;

Tips utile:

  • Evită indici duplicat (ex: ai și INDEX(email), și UNIQUE(email)—păstrează doar UNIQUE).
  • Index pe coloane folosite în WHERE, JOIN, ORDER BY (mai ales dacă ordonezi/filtresi des).
  • Prefix index pentru coloane mari (ex: CREATE INDEX ... ON t(col(100));) dacă spațiul contează.
  • Nu supra-indexa. Fiecare index încetinește scrierile. 3–6 indici/masă e adesea rezonabil (depinde de utilizare).

4.3 EXPLAIN (și EXPLAIN ANALYZE)

În tab SQL, rulează:

EXPLAIN SELECT ...;
-- MySQL 8.0.18+ (mai detaliat):
EXPLAIN ANALYZE SELECT ...;

Ce vrei să vezi:

  • type cât mai selectiv (ideal ref, range, const, nu ALL).
  • rows mic, filtered mare.
  • Extra să evite „Using temporary; Using filesort” la interogări mari (un index adecvat pe coloanele de sortare ajută).

5) Curățenie & spațiu

  • Overhead mare? Rulează Optimize pe tabelele cu overhead ridicat.
  • Migrare la InnoDB: pentru fiabilitate și blocări row-level.ALTER TABLE nume_tabel ENGINE=InnoDB;
  • Row format potrivit (InnoDB):ALTER TABLE nume_tabel ROW_FORMAT=DYNAMIC; (util pentru coloane mari TEXT/BLOB și compresie implicită modernă)
  • AUTO_INCREMENT cu „găuri” e normal; nu re-compacta doar pentru estetică.

6) Charset & Collation (recomandat: utf8mb4)

  • De ce: suport Unicode complet (emoji, diacritice corecte).
  • Ordine sigură: server → bază → tabel → coloană. În phpMyAdmin:
    • La nivel de bază: tab Operations → Collation → alege utf8mb4_0900_ai_ci (MySQL 8) sau utf8mb4_general_ci/utf8mb4_unicode_ci (compatibil).
    • La tabel: Operations → Table options → set collation; apoi convertește coloanele dacă e nevoie.
  • SQL:ALTER DATABASE nume_db CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci; ALTER TABLE nume_tabel CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
  • Atenție: fă backup și verifică aplicația (driverul/ORM) să folosească același charset/collation.

7) Integritate referențială & date „orfane”

  • Activează și folosește chei externe (InnoDB) pentru consistență.
  • Găsește rânduri „orfane” (exemplu):SELECT c.* FROM comments c LEFT JOIN posts p ON p.id = c.post_id WHERE p.id IS NULL; -- comments fără post părinte
  • Adaugă constrângeri (după curățare):ALTER TABLE comments ADD CONSTRAINT fk_comments_post FOREIGN KEY (post_id) REFERENCES posts(id) ON DELETE CASCADE;

8) Diagnosticare rapidă din phpMyAdmin

  • Status / Variables (la nivel de server): vezi încărcare, conexiuni, buffer pool (InnoDB).Poți executa SHOW STATUS LIKE 'Threads%';, SHOW ENGINE INNODB STATUS; din tab-ul SQL pentru detalii.
  • Limitare: modificările de configurare persistente (ex. innodb_buffer_pool_size) țin de fișierul my.cnf — nu de phpMyAdmin. Poți folosi SET GLOBAL pentru teste, dar nu persistă după restart.

9) Reparații reale (când ceva s-a stricat)

  • MyISAM: REPAIR TABLE din phpMyAdmin (vezi §3.4).
  • InnoDB:
    • Încearcă export & re-import din phpMyAdmin dacă tabelul e accesibil.
    • Dacă nu, e nevoie de intervenții la nivel de server (recuperare din backup, innodb_force_recovery, mysqlcheck). Asta nu se face din phpMyAdmin.
  • Loguri de erori ale serverului MySQL sunt sursa adevărului pentru corupții reale.

10) „Recepte” uzuale (pas cu pas)

10.1 Optimizare rapidă a întregii baze

  1. Intră în baza dorită.
  2. Bifează Check all.
  3. Meniu With selected → Analyze table.
  4. Apoi With selected → Optimize table.
  5. Observă rezultatele (toate „OK”?).

10.2 Reindexare după volum mare de schimbări

  1. Rulează Check + Analyze (vezi mai sus).
  2. Verifică indici (tab Structure → Indexes).
  3. Adaugă/șterge indici pe baza EXPLAIN.
  4. Rulează Optimize dacă „Overhead” e mare.

10.3 Elimină indici inutili/duplicat (SQL)

-- Duplicat clasic: ai UNIQUE(email) și INDEX(email)
SHOW INDEX FROM users; 
-- Dacă vezi două intrări pe aceeași coloană, păstrează-l pe cel UNIQUE:
DROP INDEX idx_users_email ON users;

10.4 Convertire masivă la utf8mb4 (bază întreagă)

  1. Backup complet.
  2. Operations (la nivel de bază) → setează collation la utf8mb4_0900_ai_ci.
  3. Pentru fiecare tabel:ALTER TABLE nume_tabel CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;

11) Checklist scurt pentru performanță

  •  Backup făcut.
  •  Check + Analyze rulate periodic.
  •  Optimize pe tabele cu Overhead mare.
  •  Indici existenți verificați (fără dubluri, acoperă WHERE/JOIN/ORDER).
  •  Interogări lente analizate cu EXPLAIN / EXPLAIN ANALYZE.
  •  Charset/collation corecte (utf8mb4).
  •  Integritate referențială activă (FK), date orfane curățate.
  •  Pentru probleme grave la InnoDB: plan de recovery la nivel de server (în afara phpMyAdmin).

12) Anexă — Comenzi SQL utile (copy/paste)

-- Statistici tabel + overhead
SHOW TABLE STATUS FROM nume_db LIKE 'nume_tabel';

-- Verificare/analiză/optimizare
CHECK TABLE nume_tabel EXTENDED;
ANALYZE TABLE nume_tabel;
OPTIMIZE TABLE nume_tabel;

-- (MyISAM) Reparație
REPAIR TABLE nume_tabel QUICK;

-- Informații indici
SHOW INDEX FROM nume_tabel;

-- Caută tabele fără cheie primară
SELECT TABLE_SCHEMA, TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES t
LEFT JOIN (
  SELECT TABLE_SCHEMA, TABLE_NAME
  FROM INFORMATION_SCHEMA.COLUMNS
  WHERE COLUMN_KEY='PRI'
  GROUP BY TABLE_SCHEMA, TABLE_NAME
) pk USING (TABLE_SCHEMA, TABLE_NAME)
WHERE pk.TABLE_NAME IS NULL
  AND t.TABLE_SCHEMA='nume_db';

-- EXPLAIN / EXPLAIN ANALYZE pentru o interogare
EXPLAIN SELECT * FROM orders WHERE status='paid' AND created_at >= '2025-01-01';
EXPLAIN ANALYZE SELECT * FROM orders WHERE status='paid' AND created_at >= '2025-01-01';

-- Migrare la InnoDB + setări moderne
ALTER TABLE nume_tabel ENGINE=InnoDB, ROW_FORMAT=DYNAMIC;

-- Convertire charset/collation
ALTER TABLE nume_tabel CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;

-- Index compus pentru filtrare + sortare
CREATE INDEX idx_orders_status_created ON orders(status, created_at);

13) Bun de știut (capcane comune)

  • Blocări/lacune de performanță: OPTIMIZE/ANALYZE pot bloca. Rulează în afara orelor de vârf.
  • REPAIR nu e pentru InnoDB. Dacă vezi butonul „Repair” gri, e normal.
  • Nu te baza pe „profiling” vechi. În MySQL 8, folosește EXPLAIN ANALYZE în locul SET PROFILING=1.
  • Modificările SET GLOBAL nu persistă. Pentru setări durabile, editează my.cnf (în afara phpMyAdmin).
  • Prea mulți indici = scrieri lente. Indicează cu scop.
Cuprins
  • 1) Înainte să începi (bază solidă)
  • 2) Unde găsești totul în phpMyAdmin
  • 3) Întreținerea de bază: Check / Analyze / Optimize / Repair
    • 3.1 Check (verificare)
    • 3.2 Analyze (statistici pentru optimizator)
    • 3.3 Optimize (defragmentare & spațiu)
    • 3.4 Repair (numai pentru MyISAM)
  • 4) Indexare și optimizarea interogărilor
    • 4.1 Găsește și creează indici potriviți (UI)
    • 4.2 Operații SQL frecvente pentru indici
    • 4.3 EXPLAIN (și EXPLAIN ANALYZE)
  • 5) Curățenie & spațiu
  • 6) Charset & Collation (recomandat: utf8mb4)
  • 7) Integritate referențială & date „orfane”
  • 8) Diagnosticare rapidă din phpMyAdmin
  • 9) Reparații reale (când ceva s-a stricat)
  • 10) „Recepte” uzuale (pas cu pas)
    • 10.1 Optimizare rapidă a întregii baze
    • 10.2 Reindexare după volum mare de schimbări
    • 10.3 Elimină indici inutili/duplicat (SQL)
    • 10.4 Convertire masivă la utf8mb4 (bază întreagă)
  • 11) Checklist scurt pentru performanță
  • 12) Anexă — Comenzi SQL utile (copy/paste)
  • 13) Bun de știut (capcane comune)
visa
mastercard
Apple Pay
Google Pay
cpanel
cloudlinux
eurid
rotld
Contactează-ne
soal2-01
anpc
Servicii web
  • Găzduire web
  • Domenii
  • VPS
  • Certificate SSL
  • Business Email
  • Reseller hosting
  • Servere dedicate
  • Website builder
  • Licențe cPanel & LiteSpeed
Informații
  • Cum încep?
  • Contact
  • Despre noi
  • Suport tehnic
  • Baza de cunoștințe
  • Blog
  • Cum încep?
  • Infrastructura
  • Afiliere hosting
Legal
  • Termeni de utilizare
  • Confidențialitate
  • Despre cookie-uri
  • Politica de returnare
  • Mentenanță WordPress și realizare site-uri
WhatsApp Chat
© 2001 - 2025 Host-Age.ro Gazduire Web SRL®
Prețurile sunt în euro și nu conțin TVA (21%)
Host-Age.ro