Geen tijd om te praten over het maken van tabellen geoptimaliseerd om betere resultaten. Ik herinner me alleen dat de velden geïndexeerd verbeteren veel de uitvoeringstermijn. Praten in plaats van enkele kleine truc om efficiënter MySQL die meestal afkomstig is geïnstalleerd op de meeste distro zonder al te veel parameters voor het tunen. De info verwijzen een Linux distro, maar kunnen gemakkelijk worden aangepast aan andere OS.
De configuratie bestand is meestal in / etc / my.ini.
Eempio van my.ini:
[mysqld]
datadir = / var / lib / mysql
socket = / var / lib / mysql / mysql.sock
set-variable = key_buffer = 64m
set-variable = max_user_connections = 100
set-variable = query_cache_size = 64m
# Standaard voor het gebruik van oude wachtwoord voor compatibiliteit met mysql 3.x
# Clients (die met behulp van de mysqlclient10 compatibiliteit pakket).
old_passwords = 1
[mysql.server]
user = mysql
basedir = / var / lib
[mysqld_safe]
err-log = / var / log / mysqld.log
pid-file = / var / run / mysqld / mysqld.pid
buffers: de buffer van alle incremeto krijgt een databank veel sneller. Vervolgens worden de buffers op basis van de hoeveelheid geheugen die beschikbaar is, rekening houdend met het verbruik door het besturingssysteem en andere toepassingen en diensten in gebruik zijn. Als u de toewijzing van te veel geheugen terwijl niet met een bepaling kan draaien in de algemene prestaties van het systeem.
Wait_timeout: is de tijd die verstrijkt voordat deze wordt gesloten automatisch verbinding met MySQL vanwege passiviteit. Lagere aantal is betere prestaties. In dit geval moet u ook de aard van de verbindingen en hun vermeende tijd voor het ijken van de beste parameter.
back_log: regelt hoeveel gelijktijdige verbindingen kan houden terwijl Mysql creëert nieuwe draad. Hoe lager het getal, hoe hoger de snelheid. Let op, het is makkelijk om niet in de werking door het instellen van deze parameter correct, gebruik dit alleen indien absoluut noodzakelijk.
Max_user_connections: Stelt het maximum aantal verbindingen toegestaan aan een gebruiker. Het is zeer nuttig in de systemen waar dezelfde server MySQL gebruikers toegankelijk tegelijk.
Delayed_queue_size: aantal rijen samen met INSERT VERTRAAGD. Minder zal zijn langs de lijnen, hoe sneller Mysql.
Sort_buffer_size: stelt de grootte van de buffer zijn toegewezen aan de uitvoering van ORDER BY clausules en GROUP BY clausules. Om zoekopdrachten efficiënter zij deze parameter op een waarde groter dan 2M.
Table_cache: controles het aantal open tafels voor alle draden, het verhogen van deze variabele zal de tabellen tegelijk geladen en de uitvoering van Mysql is veel sneller. Aandacht voor deze parameter, de besturingssystemen hebben een limiet van pointers naar bestanden openen in een keer, als u deze limiet overschrijdt u kan geven in elk systeem defect.
Thread_cache_size: Stelt het aantal threads te houden in de cache. Deze functie maakt het gebruik van draden erg snel.
De commando SHOW STATUS helpt ons om in real-time deze variabelen, waarvan meer dan de anderen om ons te helpen begrijpen wat zijn de meest significante verbeteringen kunnen wij:
- Handler_read_first: Geeft aan hoeveel keer het eerste record werd voorgelezen uit een tabel. Als dit vaak gebeurt, betekent dit dat de tabel niet correct geïndexeerd.
- Innodb_buffer_pool_wait_free: geeft het aantal keer dat MySQL heeft om te wachten voor het spoelen van de pagina's van het geheugen. Als de return waarde hoog is dan de buffer zwembad omvang niet is geconfigureerd voor het bedrag van schrijf operaties ondergaan door de server.
- Key_reads: geeft het aantal keer dat MySQL toegang tot het bestandssysteem voor database indexen. Dit vertraagt de snelheid van uitvoering vragen, dus als deze waarde hoog is dan betekent dit dat de belangrijkste buffer is te klein en zou moeten worden verhoogd.
- Max_used_connections: Geeft het maximale aantal verbindingen dat MySQL moest open tijdens de laatste boot. Aan de ene kant is dit een echte benchmark (het helpt om te bepalen wat de maximale aantal verbindingen dat de server kan steunen) en de andere wordt gepresenteerd als een handige verkeer analyzer.
- Open_tables: Geeft het huidige aantal tafels open. Deze waarde moet worden geanalyseerd in combinatie met de cache-grootte van de tabel. Normaal gesproken is de omvang van table_cache moet worden ingesteld hoger voor deze variabele. Indien de waarde van open_tables is veel lager dan table_cache om problemen met de prestaties, het is dus ook een vermindering van de grootte van de cache. Indien de waarde van open_tables is zeer hoog en is het naderen van de grootte van de cache, dan verhogen table_cache.
- Select_full_join: Het aantal volledige toetreden MySQL heeft verricht om te voldoen aan de eisen van de klant. Een hoge waarde geeft aan dat in plaats van met behulp van indexen, MySQL is gedwongen tot het uitvoeren van volledige toetreden. Dit duidt op de noodzaak van een sterke index van deze tabellen.
- Slow_queries: geeft het aantal zoekopdrachten dat heeft meer tijd dan gewoonlijk te doen. Een hoge waarde moet leiden tot het analyseren van de Slow zoekopdrachtlogboek te identificeren wat zijn de trage query te optimaliseren.
- Threads_connected: Geeft het totaal aantal klanten dat zijn aangesloten op de server in een dergelijk moment.
- Created_tmp_disk_tables: geeft het aantal tijdelijke tabellen, die zijn gemaakt op de harde schijf in plaats van het geheugen. Aangezien de toegang tot de tabellen op een schijf is meestal trager dan in het geheugen, de inhoud van de variabele zal worden omgekeerd evenredig met de snelheid waarmee vragen worden loopt het commando CREATE tijdelijke tabel.
- Uptime: Geeft aan hoeveel seconden is op de dienst.



































