soporta segundo registros por para optimizar optimizacion lentas cuantas consultas con codigo buscar avanzadas mysql file-io

mysql - segundo - optimizacion de consultas sql



escribir los resultados de la consulta sql a un archivo en mysql (4)

Estoy tratando de escribir los resultados de una consulta en un archivo usando mysql. He visto algo de información sobre la construcción outfile en algunos lugares pero parece que esto solo escribe el archivo en la máquina en la que se ejecuta MySQL (en este caso, una máquina remota, es decir, la base de datos no está en mi máquina local).

Alternativamente, también he intentado ejecutar la consulta y capturar (copiar / pegar) los resultados de la ventana de resultados de mysql workbench. Esto funcionó para algunos de los conjuntos de datos más pequeños, pero el más grande de los conjuntos de datos parece ser demasiado grande y causa una excepción de memoria / error / bloqueo.

Cualquier ayuda en este asunto sería muy apreciada.


Esto depende del cliente SQL que esté utilizando para interactuar con la base de datos. Por ejemplo, podría usar la interfaz de línea de comandos mysql junto con el operador "tee" para enviar a un archivo local:

http://dev.mysql.com/doc/refman/5.1/en/mysql-commands.html

tee [file_name], /T [file_name]

Ejecute el comando anterior antes de ejecutar el SQL y el resultado de la consulta se enviará al archivo.

Específicamente para MySQL Workbench, aquí hay un artículo sobre Execute Query to Text Output . Aunque no veo ninguna documentación, hay indicaciones de que también debería haber una opción "Exportar" en Consulta, aunque eso es casi seguro que depende de la versión.


Puede intentar ejecutar la consulta desde su cli local y redirigir la salida a un destino de archivo local;

Mysql -user -pass -e"select cols from table where cols not null" > /tmp/output


Puede intentar esto, si desea escribir el resultado de la consulta MySQL en un archivo.

Este ejemplo escribe el resultado de la consulta MySQL en un archivo csv con formato separado por comas

SELECT id,name,email FROM customers INTO OUTFILE ''/tmp/customers.csv'' FIELDS TERMINATED BY '','' ENCLOSED BY ''"'' LINES TERMINATED BY ''/n''


Si está ejecutando consultas mysql en la línea de comandos. Aquí, supongo que tiene la lista de consultas en un archivo de texto y desea la salida en otro archivo de texto. Entonces puedes usar esto. [test_2 es ​​el nombre de la base de datos]

Comando 1

mysql -vv -u root -p test_2 < query.txt > /root/results.txt 2>&1

Donde -vv es para la salida detallada.

Si utiliza la declaración anterior como

Comando 2

mysql -vv -u root -p test_2 < query.txt 2>&1 > /root/results.txt

Redirigirá STDERR a la ubicación normal (es decir, en el terminal) y STDOUT al archivo de salida, que en mi caso es results.txt

El primer comando ejecuta el archivo query.txt hasta que aparece un error y se detiene allí.

Así es como funciona la redirección. Puedes probar

#ls key.pem asdf > /tmp/output_1 2>&1 /tmp/output_2

Aquí el archivo key.pm existe y asdf no existe. Así que cuando catas los archivos obtienes lo siguiente

# cat /tmp/output_1 key.pem #cat /tmp/output_2 ls: cannot access asdf: No such file or directory

Pero si modifica la declaración anterior con este

ls key.pem asdf > /tmp/output_1 > /tmp/output_2 2>&1

Entonces obtienes el error y la salida en output_2

cat /tmp/output_2 ls: cannot access asdf: No such file or directory key.pem