Qual seria o tipo de dados correto para armazenar endereços de e-mail no PostgreSQL?
Posso usar varchar
(ou até text
), mas gostaria de saber se existe um tipo de dado mais específico para emails.
Qual seria o tipo de dados correto para armazenar endereços de e-mail no PostgreSQL?
Posso usar varchar
(ou até text
), mas gostaria de saber se existe um tipo de dado mais específico para emails.
Nas versões recentes do PostgreSQL (a partir de dezembro de 2013), podemos compartilhar uma consulta entre dois ou mais núcleos para obter um aumento de desempenho? Ou devemos obter núcleos mais rápidos?
Olhando para um plano de execução de uma consulta de execução lenta e notei que alguns dos nós são busca de índice e alguns deles são varredura de índice.
Qual é a diferença entre uma busca de índice e uma varredura de índice?
Qual tem melhor desempenho?
Como o SQL escolhe um sobre o outro?
Sei que são 3 perguntas, mas acho que responder a primeira explicará as outras.
Eu tenho um banco de dados no PostgreSQL 9.2 que tem um esquema principal com cerca de 70 tabelas e um número variável de esquemas por cliente estruturados de forma idêntica de 30 tabelas cada. Os esquemas do cliente têm chaves estrangeiras que fazem referência ao esquema principal e não o contrário.
Acabei de começar a preencher o banco de dados com alguns dados reais retirados da versão anterior. O banco de dados atingiu cerca de 1,5 GB (espera-se que cresça para vários 10s GB em semanas) quando tive que fazer uma exclusão em massa em uma tabela muito central no esquema principal. Todas as chaves estrangeiras em questão são marcadas como ON DELETE CASCADE.
Não foi surpresa que isso demorasse muito, mas depois de 12 horas ficou claro que era melhor começar de novo, largar o banco de dados e iniciar a migração novamente. Mas e se eu precisar repetir essa operação mais tarde quando o banco de dados estiver ativo e muito maior? Existem métodos alternativos e mais rápidos?
Seria muito mais rápido se eu escrevesse um script que navegasse pelas tabelas dependentes, começando na tabela mais distante da tabela central, excluindo as linhas dependentes tabela por tabela?
Um detalhe importante é que existem triggers em algumas das tabelas.
Nos logs de erros do MySQL, vejo alguns avisos como estes:
120611 16:12:30 [Warning] Aborted connection 2619503 to db: 'db_name' user: 'user_name' host: 'webapp_hostname' (Got an error reading communication packets)
Não notei nenhuma perda de dados em si, então estou me perguntando o que esse aviso significa ou o que o causa e se como alguém pode resolver o problema que os causa. Isso está no RHEL 6.1 e MySQL Enterprise 5.5.
Qual é a diferença entre uma conexão e uma sessão e como elas estão relacionadas?
Tenho alguns servidores de produção cujos ibdata
arquivos aumentam de tamanho dia a dia.
Já consumiu 290 GB de espaço.
As tabelas nos servidores são principalmente InnoDB e há altas solicitações de leitura e gravação.
O tamanho do arquivo de log também está aumentando. Há uma enorme quantidade de dados nas tabelas.
Como posso controlar o tamanho crescente de ambos?
não estou usando innodb_file_per_table
.
Eu gostaria de construir um sistema distribuído. Preciso armazenar dados em bancos de dados e seria útil usar um UUID ou um GUID como chave primária em algumas tabelas. Eu suponho que seja uma desvantagem com esse design, pois o UUID/GUID é bastante grande e eles são quase aleatórios. A alternativa é usar um INT ou LONG auto-incrementado.
Quais são as desvantagens de usar UUID ou GUID como chave primária para minhas tabelas?
Provavelmente usarei Derby/JavaDB (nos clientes) e PostgreSQL (no servidor) como DBMS.
Quais são as diferenças entre o NoSQL e um RDBMS tradicional?
Nos últimos meses, o NoSQL tem sido frequentemente mencionado nas notícias técnicas. Quais são suas características mais significativas em relação a um RDBMS tradicional? Em que nível (físico, lógico) ocorrem as diferenças?
Onde estão os melhores lugares para usar o NoSQL? Por quê?
Quais metodologias de controle de versão ajudam equipes de pessoas a rastrear alterações de esquema de banco de dados?