Permeti Registrant de Preguntes Lentes (Registre de Pregunta Lent) en la Base de Dades de MySQL
Un dels requisits principals d'un servidor de webs ràpid és a té declaracions de SQL eficaces i eficaces o preguntes que s'optimitzen. Qualsevol SQL no òptim (Structured query language) mana o les declaracions que prenen també anhelen o el temps llarg d'executar gastarà molts recursos de sistema, base de dades de MySQL que provoca per córrer més lent, i llavors fent més i més acumulacions de preguntes cua amunt, i quan límit de connexió és arribat, visitants són estat negat o rebutjava connexió. En el pitjor guió de cas, el seu servidor de webs baixarà també, o contínuament underperform. El cas és especialment veritable quan està utilitzant tipus de taula de MyISAM quins usos anivellen taula tancant en comptes de nivell de baralla que tanca en un lloc web de tràfic alt.
En algun moment, una pregunta de SQL senzilla pot ser la causa dels problemes de tot el servidor. MySQL fa funcionalitat predefinida per captar pregunta lenta registrar o identificar preguntes que no són òptims i considera molt temps que acaba, quin li permet registrar totes les preguntes que s'executen lentes que prenien sobre nombre definit de segons per executar per motor de base de dades de MySQL a un arxiu. El registre de pregunta lent no s'activa o en per defecte instal·lació de MySQL, així és un dels registres menys utilitzats.
Permetre registre de pregunta lent, simplement afegir la línia següent a arxiu de configuració de MySQL (my.cnf o my.ini), i llavors reprendre el servidor de MySQL:
log-slow-queries
o
log-slow-queries = [camí al fitxer historial]
Canviï [camí al fitxer historial] per camí present al fitxer historial de pregunta lent a què vol que el MySQL escrigui el registre, que és el valor opcional.
O pot començar mysqld amb amb el -log-slow-queries[=file_name] opció de permetre el registre de pregunta lent. En les dues sintaxis, si no nom de fitxer historial és especificat, el nom d'omissió és host_name-slow.log, emmagatzemat en el guia d'arxiu de dades de MySQL. Si un filename es dóna, però no com a ruta d'accés absoluta, el servidor escriu l'arxiu en el guia de dades també.
Després de permetre registre de pregunta lent, MySQL crearà, capturarà i registrarà al fitxer historial amb totes les declaracions de SQL que agafaven més que no long_query_time secunda per executar, la qual cosa és per defecte conjunt a 10 segons. El temps d'adquirir els panys de taula inicials no es considera com temps d'execució. mysqld escriu una declaració al registre de pregunta lent després que s'hagi executat i després que tots els panys s'hagin alliberat, així registrin ordre podria ser diferent d'ordre d'execució.
Pot llavors examinar totes les preguntes de SQL que prenien més temps que el nombre predefinit de segons (10 segons per defecte) en el host_name-slow.log, i llavors considera els passos necessaris que optimitza les declaracions de SQL. El registre de pregunta lent li dirà que sobre el que era temps la pregunta completava, quant temps la pregunta prenia córrer, quant temps prenia assegurar els seus panys, quantes baralles es retornaven com a resultat, quantes baralles eren examinats per determinar el resultat, quina base de dades s'utilitzava, i la pregunta present mateixa. Però tingui present que una pregunta de SQL continguda en el registre pot tenir ja òptim, però executava lentament a causa dels recursos de sistema estat utilitzat cap amunt per la declaració lenta present que necessita estar bé afinat.
IMPORTANT: La pàgina és màquina traduïda i proporcionada "com és" sense garantia. La traducció automàtica pot ser difícil d'entendre. Si us plau refereixi's a article anglès original quan sigui que possible.
Articles Relacionats
- Canviï o Posi Valor d'Hora de Pregunta Llarga de MySQL per a log-slow-queries
- Error de Pregunta de SQL de WordPress MySQL en Classe de WPDB
- Com Trobar i Reemplaçar Text en la Base de Dades de MySQL que utilitza SQL
- Comprovi i Optimitzi MySQL Base de Dades Automàticament amb Crontab/Cron
- Sintonia d'Actuació de Base de Dades de MySQL Millor Practica Classe de Vídeo
- Tregui o Retalli Primer o Finalment Pocs Caràcters en la Base de Dades de MySQL amb SQL
- Permeti Suport de Motor d'Emmagatzematge de MySQL InnoDB en Instal·lació de XAMPP
- Canviï i Restauri Contrasenya d'arrel de MySQL
- No Se l'Autoritza a Executar Preguntes de SQL en el Manteniment de vBulletin
- Enllaç de Base de Dades d'Oracle










































18 de juliol, 2009 02:23
quan se'n vagi a my.cf veurà que per defecte les línies
log_slow_queries = /var/log/mysql/mysql-slow.log &
long_query_time = 1
sigui comentat fora, tanmateix, la pròxima línia
log-queries-not-using-indexes
no és, així si permet pregunta lenta que registra llavors per defecte totes les preguntes que els no índexs que utilitzen deixaran en aquell registre. Per a la majoria dels DBs això serà una tona de dades que són per què s'estan omplint els seus registres tan de pressa.
El meu suggeriment és comentari fora aquesta línia
log-queries-not-using-indexes
i converteixi el valor de long_query_time en alguna cosa baix com 1 o 2, això li hauria de donar alguns resultats significatius amb quin començar de.
Si encara no aconsegueix cap resultat podria ser que no té cap pregunta lenta en quin cas hauria d'incomentar fora la línia
log-queries-not-using-indexes
i comenci a intentar indexar algunes d'aquelles preguntes.
esperança que ajuda algú
-Kain
20 de febrer, 2009 21:29
Utilitzo analyzer de Pregunta de MONyog per analitzar preguntes lentes. Funciona impecablement.
19 de desembre, 2008 19:37
No puc realment confirmar això - permetia loggin lent a l'arxiu d'appropiate config (debian lenny, mysql 5.0 més tard) perquè jo TENIA "algunes" preguntes lentes abans de.
Després de permetre hi ha milers de "preguntes lentes" que es registren - El límit lent es posa a l'omissió de 10 segons. Això són realment bestieses com no hi pot haver una pregunta de >10sec quan s'està comptant la pàgina sencera, per php, tranferred sobre el net i rendit al navegador de client en menys de 5 segons
salutacions Marcus
1 de novembre, 2008 18:48
els i intenten fer allò però aquest missatge apareixia
081101 5:34:51 [ERROR] Fatal error: Si us plau llegeixi secció De "Seguretat" del manual per esbrinar com córrer mysqld com arrel!
081101 5:34:51 [ERROR] Avortant
081101 5:34:51 [Bitllet] mysqld: Que el tancament completa
què haurien de fer i en aquest cas?
23 de gener, 2007 00:22
[...] Si permet registre de preguntes lent de servidor de base de dades de MySQL, se n'adonarà que des del fitxer historial de pregunta lent conté només declaracions de SQL i preguntes que prenien més que query_time de 10 segons per executar o per córrer. Això és el valor per defecte o llindar d'hora de pregunta per a la funció de log_slow_queries, que són 10 segons. 10 segons és camí també desitjar una pregunta de SQL per completar, així el valor pot ser massa alt captar qualssevol dades significatives. Pot canviar o canviar el temps de pregunta lent d'abaixar valor o nombre de segons. Pot posar un long_query_time nou a l'arxiu de configuració de MySQL, és a dir my.cnf o my.ini, normalment localitzava dins /etc. guia. Simplement afegeixi la línia següent a l'arxiu de configuració: [...]