Displaying posts with tag: MySQL (reset)
COMO ESCOLHER MELHOR SEUS ÍNDICES – UM BOM COMEÇO

Antes de começar a escrever suas buscas pelos dados , recomendo você a primeiro ter uma ideia do que é mais importante para seus usuários.
Quais valores e o tamanho de seus subconjunto vão conduzir a escolha do(s) índice(s) . O índice nada mais é que uma forma de acessar
mais rapidamente uma informação específica. Aqui é muito importante perceber que “informação específica” não é “todas as informações”.
E apesar de contribuirem para o acesso a determinados dados, eles vêm com um custo, tanto em armazenamento quanto em processamento. Por isso
a estratégia adotada na criação de um indice deve considerar, por exemplo, que o volume de armazenamento de um indice pode ser muito maior
que o volume de armazenamento do dado que está sendo indexado. Considere os índices em suas estratégias de backup/restore.
E quanto ao processamento? Toda ação de insert/delete/update no banco, …

[Leia mais]
MYSQL + JSON DA CASAMENTO SIM!

 

Hoje vamos falar um pouco sobre um assunto muito desejado e esperado, tanto por desenvolvedores quanto por DBAs.
O MySQL suporta armazenar documentos JSON????
A resposta é um grande e sonoro SIM!!!
Na versão 5.7.8 foi adicionado o data type JSON e com ele você pode armazenar e manipular documentos JSON.

Isso significa que posso fazer no MySQL tudo que faço no MongoDB?

Não, pelo menos por enquanto não. Eu ainda não vejo dessa forma, na maturidade atual do recurso ele já pode ajudar muito a suprir algumas necessidades em armazenar e manipular documentos JSON, mas não temos(ainda!?) uma engine completa e altamente robusta para isso!

Vamos ver alguns exemplos de como armazenar, buscar e manipular documentos JSON. Em um próximo POST vou falar sobre performance e melhores práticas.

Para esse exemplo estou utilizando o MySQL 5.7.11 que …

[Leia mais]
FEDERATED: Selecionando tabelas em outro servidor

 

Algumas vezes temos a necessidade de realizar consultas ou até mesmo JOINs com tabelas que estão em outro servidor MySQL/MariaDB. E no nosso cenário não temos um MySQL Cluster, nem um MariaDB/Percona Galera Cluster, nem sequer uma replicação, seja isso por qualquer motivo(projetos diferentes, empresas diferentes, etc…).
Para isso o MySQL tem(e faz muito tempo) uma engine específica, a engine FEDERATED. Sim ela permite realizar uma conexão com outro servidor MySQL/MariaDB e executar uma consulta em uma tabela. Mas tenha em mente que a performance vai depender de vários itens, como a velocidade da comunicação pela internet/rede local, quantidade de dados e itens relacionados a performance em geral(estrutura da tabela, índices, engine…).

No exemplo estou usando o MySQL 5.6.28, mas esse mesmo exemplo vai funcionar para o MySQL 5.5 e 5.7, no MySQL 5.1 e 5.0 não testei, se não for …

[Leia mais]
Alterando o datadir do MySQL no Ubuntu

Um procedimento comum após a instalação do MySQL é alterar o datadir e normalmente é para outra unidade de disco. Nos servidores que eu administro sempre busco deixar o datadir em uma unidade de disco e a gravação de logs em outra, isso faz não existir concorrência de I/O no momento de leitura ou gravação de dados.

Eu normalmente utilizo CentOS para o MySQL mas devido a um projeto acabei utilizando Ubuntu 14.04. Toda a instalação, tuning, etc… foi maravilhosamente bem, até o momento em que eu foi alterar o datadir do MySQL.

Então eu parei o serviço do MySQL com o comando /etc/init/d/mysql stop , e editei o /etc/mysql/my.cnf para alterar as variáveis de datadir e variáveis de diretório das tabelas InnoDB.

Copy to Clipboard datadir = /database/mysql innodb_data_home_dir = /database/mysql innodb_log_group_home_dir = /database/mysql

Nesse momento os problemas começaram, o serviço do MySQL não …

[Leia mais]
COMO NÃO TER ERROS NAS COLUNAS AUTO_INCREMENT NA REPLICAÇÃO

Quando temos uma replicação envolvendo mais de 1 servidor master temos que tomar o cuidado para que a replicação não pare de funcionar, e o primeiro problema que qualquer DBA enfrenta é o erro de chave primária duplicada.

 Variáveis que devem ser configuradas em todos os servidores Master. Copy to Clipboard Duplicate entry '1' for key 'PRIMARY'

Porém é muito simples e fácil não passar por esse problema.
Temos 2 variáveis fundamentais e é muito simples a sua correta configuração.
Obs: O que eu mais vejo por ai é configurado da forma errada, ou configurada no chute, sem entender a forma correta de usar

Variável Descrição
auto_increment_increment Define o intervalo de valores das colunas auto_increment, o salto que o auto_incremtn vai precisar fazer para que não …
[Leia mais]
Você sabe como calcular o tamanho das suas tabelas e databases?

Uma informação legal, mais do que legal, importante, mais do que importante, necessária!

Quem nunca perguntou ou foi perguntado sobre qual o tamanho de um banco de dados ou de uma tabela?
Quando as tabelas são MyISAM da para olhar o tamanho dos arquivos, ou se for InnoDB e estiver com o innodb_per_tables habilitada até conseguimos, mas temos que nos conectarmos no servidor, acessar o diretórios e ai olhar os arquivos, depois somar os valores, etc…

Com esses simples SELECTs conseguimos essas respostas.

Verificar os tamanhos dos databases

Copy to Clipboard SELECT table_schema AS 'DB', FORMAT(SUM(TABLE_ROWS), 0) AS 'Linhas', ROUND(SUM(DATA_LENGTH + INDEX_LENGTH )/1024/1024, 3) AS 'MB' FROM information_schema.TABLES GROUP BY table_schema WITH ROLLUP; Verificar os tamanhos das tabelas de um database

Copy to Clipboard SELECT TABLE_NAME AS 'Tabela', FORMAT(SUM(TABLE_ROWS ), 0) AS …

[Leia mais]
Instalando o MySQL 5.7 no CentOS a partir dos binários

Temos 3 formas de instalar o MySQL nas distribuições Linux. As instalações podem ser feitas a partir do repositório(yum, apt-get, etc…), a partir do pacote já compilado para a sua distribuição(.rpm, .deb, etc…) ou ainda através dos binários do MySQL. Nesse momento vamos ver como fazer a instalação a partir dos arquivos binários, e já … Read More →

INSTALANDO O MYSQL 5.7 NO CENTOS COM OS ARQUIVOS RPM

Temos 3 formas de instalar o MySQL nas distribuições Linux. As instalações podem ser feitas a partir do repositório(yum, apt-get, etc…), a partir do pacote já compilado para a sua distribuição(.rpm, .deb, etc…) ou ainda através dos binários do MySQL. Nesse momento vamos ver como fazer a instalação a partir do compilado para a sua … Read More →

Instalando o MySQL 5.7 no CentOS a partir do repositório

Temos 3 formas de instalar o MySQL nas distribuições Linux. As instalações podem ser feitas a partir do repositório(yum, apt-get, etc…), a partir do pacote já compilado para a sua distribuição(.rpm, .deb, etc…) ou ainda através dos binários do MySQL. Nesse momento vamos ver como fazer a instalação a partir do repositório oficial do MySQL. … Read More →

MySQL e o GDPR

O que é o GDPR? A Global Data Protection Regulation ou Regulamento Geral sobre Proteção de Dados é uma regulamentação, criado pela União Européia, mas, com abrangência global. Antes de ser uma regulamentação, é acima de tudo, um belo conjunto de boas práticas que deveria ser adotado por toda empresa que, de alguma forma, coleta e … Continue reading MySQL e o GDPR →