10 dicas estúpidas para o MySQL

You are able to see this post in english too.

Olá!

O post deste mês traz 10 dicas estúpidas para o dia-a-dia com o MySQL. Lá vão elas:

  1. Utilize um arquivo .my.cnf em sua homedir com dados de user/senha:
    [client]
    user=root
    password=mi-nha_s3nha
  2. Termine os comandos com G ao invés de “;”: Isso lhe dará uma visão “form” ao invés de tabular. Necessário muitas vezes;
  3. Visões materializadas: Quando as Views não oferecerem a performance esperada, utilize triggers para alimentar tabelas que lhe servirão como views. Utilizando este recurso com cuidado, teste e documentação, ajuda bastante!
  4. Cuide do parâmetro ENGINE de seus bancos e tabelas: Escolha o melhor considerando a relação de R/W entre elas;
  5. Personalize o prompt do MySQL no arquivo .my.cnf de sua homedir. O exemplo abaixo mostrará "MySQL:db_exemplo>". Existem também os parâmetros u para o user e h para o host:
    prompt='mysql:d>'
  6. Uma vez no prompt do MySQL, CTRL+A te leverá ao início da linha, CTRL+E ao final.
  7. Para criar uma tabela t2 com a mesma estrutura da tabela t1:
    CREATE TABLE t2 LIKE t1;
  8. Para criar um usuário e dar acesso numa única linha:
    GRANT ALL ON db_name.* TO 'username'@'host' IDENTIFIED BY 'password'; FLUSH PRIVILEGES;
  9. Gerar um arquivo CSV a partir do shell (melhor que OUTFILE pois leva o nome das colunas também):
    mysql -AD dbname -e "Seu SELECT aqui;" | tr "t" ";" > resultset.csv
  10. Agora a última, mas não menos estúpida. Exibir as queries em execução (o parâmetro FULL é opcional):
    SHOW [FULL] PROCESSLIST;

Memorizá-las tornará seu dia-a-dia com o MySQL mais fácil.

Até a próxima!!

10 stupid tips for MySQL

Você pode ler este post em português também.

Hello!

The April’s post brings 10 stupid tips for day-by-day work with MySQL. Let’s see them:

  1. Use a .my.cnf file in your homedir with user/password data:
    [client]
    user=root
    password=my_p@ss-w0rd
  2. End your commands with G instead of ";": This will bring a “form” view instead the normal tabular view. This is necessary a lot of times;
  3. Materialized views: When the regular views (created with CREATE VIEW) doesn’t offer the expected performance, use triggers to feed tables that could work like the regular views. Being carefull, it helps a lot!
  4. Take care of the parameter ENGINE of your databases and tables: Choose the best considering the R/W relation of the tables;
  5. Adjust your MySQL prompt to your best fit at your .my.cnf in your homedir. The example below shows "mysql:db_name>". There are also the u (to show the username) and h (to show the hostname):
    prompt='mysql:d>'
  6. At your mysql prompt, CTRL+A brings you to the begin of the line. CTRL+E brings you to the end;
  7. To create a t2 table with the same structure of t1 table:
    CREATE TABLE t2 LIKE t1;
  8. To create a user and give its access in one line:
    GRANT ALL ON db_name.* TO 'username'@'host' IDENTIFIED BY 'password'; FLUSH PRIVILEGES;
  9. To generate a CSV file from the shell (better than OUTFILE ’cause this below shows the column names):
    mysql -AD dbname -e "Your SELECT here;" | tr "t" ";" > resultset.csv
  10. And the last, but not least (stupid). To show the queries in execution (the FULL parameter is optional):

    SHOW [FULL] PROCESSLIST;

Memorize them and your day-by-day with MySQL will be easier.

See you!