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, …
« Anterior 10 Mais recentes entradas | Próximo 10 Entradas mais antigos »
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]
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]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]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 … |
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', …
[Leia mais]Venha trocar experiências, buscar ajuda, e conversar com a comunidade brasileira de MySQL no Slack:
EmailEnviar Convite
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 →
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 →
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 →
« Anterior 10 Mais recentes entradas | Próximo 10 Entradas mais antigos »