sql >> Database teknologi >  >> Database Tools >> phpMyAdmin

MySql - WAMP - Kæmpe tabel er meget langsom (20 millioner rækker)

Nogle svar:

  • 20 millioner rækker er godt inden for MySQL's kapacitet. Jeg arbejder på en database, der har over 500 millioner rækker i en af ​​dens tabeller. Det kan tage timer at omstrukturere en tabel, men almindelige forespørgsler er ikke et problem, så længe de er assisteret af et indeks.

  • Din bærbare computer er temmelig forældet og underpowered til at bruge som en højskala databaseserver. Det kommer til at tage lang tid at lave en tabelomlægning. Den lave mængde hukommelse og typisk langsomme bærbare diske er sandsynligvis begrænsende for dig. Du bruger sandsynligvis også standardindstillinger for MySQL, som er designet til at fungere på meget gamle computere.

  • Jeg vil ikke anbefale at bruge TEXT datatype for hver kolonne. Der er ingen grund til, at du skal bruge TEXT for de fleste af disse kolonner.

  • Opret ikke et indeks for hver kolonne, især hvis du insisterer på at bruge TEXT datatyper. Du kan ikke engang indeksere en TEXT kolonne, medmindre du definerer et præfiksindeks . Generelt skal du vælge indekser til at understøtte specifikke forespørgsler.

Du har sikkert mange andre spørgsmål baseret på ovenstående, men der er for meget at dække i et enkelt StackOverflow-indlæg. Du vil måske tage uddannelse eller læse en bog, hvis du skal arbejde med databaser.
Jeg anbefaler Høj ydeevne MySQL, 2. udgave .

Til dine opfølgende spørgsmål:

For MySQL-tuning er her et godt sted at starte:http://www.mysqlperformanceblog.com/2006/09/29/what-to-tune-in-mysql-server-after-installation/

Mange ALTER TABLE-operationer forårsager en tabelomstrukturering, hvilket grundlæggende betyder at låse tabellen, lave en kopi af hele tabellen med de anvendte ændringer og derefter omdøbe de nye og gamle tabeller og slippe den gamle tabel. Hvis bordet er meget stort, kan det tage lang tid.

En TEKST-datatype kan gemme op til 64KB, hvilket er overkill for et telefonnummer eller en tilstand. Jeg ville bruge CHAR(10) til et typisk amerikansk telefonnummer. Jeg ville bruge CHAR(2) til en amerikansk stat. Generelt skal du bruge den mest kompakte og sparsommelige datatype, der understøtter den række af data, du har brug for i en given kolonne.



  1. Sådan opretter du et ER-diagram i DBeaver

  2. phpmyadmin.pma_table_uiprefs eksisterer ikke

  3. SQL Server Management Studio vil ikke starte - Typebiblioteket blev ikke fundet

  4. Hvordan logger jeg på phpmyadmin på Google Cloud