AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / dba / Perguntas / 75936
Accepted
watery
watery
Asked: 2014-09-08 10:24:05 +0800 CST2014-09-08 10:24:05 +0800 CST 2014-09-08 10:24:05 +0800 CST

Quais tecnologias de banco de dados devem ser consideradas para um aplicativo de pesquisa de dados?

  • 772

Estou projetando um aplicativo que apenas faz consultas de leitura para algumas tabelas do banco de dados (é uma espécie de aplicativo de pesquisa); os dados consultados são atualizados à noite pelo sistema (portanto, a velocidade é menos crítica, embora muito importante aqui também), enquanto os usuários do aplicativo apenas fazem pesquisas de texto completo nos dados armazenados.
O desempenho de recuperação é então um ponto chave da aplicação.

Você pode sugerir links, termos ou argumentos do Google e outros materiais que eu possa ler para projetar adequadamente as partes do banco de dados que estarão envolvidas nas pesquisas dos usuários?
Já sei o básico sobre índices, e verificando as consultas com EXPLAIN, estou lendo sobre particionamento de tabelas para ver se tem algo que possa me ajudar.

O aplicativo será executado no MySQL 5.6
Até agora, sua pesquisa FULLTEXT incorporada é suficiente para nossos requisitos. Estou procurando mais dicas sobre como estruturar adequadamente o banco de dados para não adicionar lentidão desnecessária (aproveitando o fato de que nenhum consulta do usuário atualizará os dados).

Que outras tecnologias de banco de dados devo procurar?

mysql performance
  • 1 1 respostas
  • 89 Views

1 respostas

  • Voted
  1. Best Answer
    Bill Karwin
    2014-09-08T12:00:47+08:002014-09-08T12:00:47+08:00

    Fulltext Search é uma tecnologia especializada que complementa um banco de dados SQL tradicional. Existe um recurso simples de indexação de texto completo embutido no MySQL, mas você provavelmente encontrará outras alternativas com mais recursos e desempenho superior.

    Fiz uma apresentação comparando-os aqui: Full Text Search Throwdown .

    A resposta curta: Sphinx Search .


    Re seu comentário:

    Parece que sua pergunta não é sobre uma solução específica, mas apenas sobre categorias de otimizações de desempenho.

    • Indexação. How to Design Indexes, Really é a minha apresentação, que já fiz várias vezes. Aqui está uma gravação minha apresentando uma versão desta palestra: Ferramentas e técnicas para design de índice .
    • Particionamento. Desempenho de partições com MySQL 5.1 e 5.5 por Giuseppe Maxia. Este foi o que fez o particionamento clicar para mim. O particionamento é muito poderoso quando funciona, mas funciona para um pequeno número de casos.
    • Cache. Qual é a consulta SQL mais rápida? Aquele que você não precisa executar, porque pode obter uma cópia dos dados de um cache de alta velocidade. Isso requer mais codificação de aplicativos caso a caso para decidir sobre os dados corretos para armazenar em cache, em qual formato armazená-los e como atualizá-los. Muito trabalho, mas pode acelerar o acesso a certos dados em ordens de magnitude.
    • Desnormalização. Embora a desnormalização crie oportunidades para anomalias de dados, às vezes é a melhor opção para otimizar uma consulta específica. Cuidado, porém, porque a desnormalização degrada o desempenho de todas as outras consultas nos mesmos dados.
    • Fragmentação. Útil quando o tráfego de dados ou consultas cresce tanto que uma única instância de banco de dados não pode mais processar consultas suficientes por segundo. Divida seus dados horizontalmente, armazenando um subconjunto em cada instância de estilhaço. Adicione código ao seu aplicativo para decidir como enviar suas consultas ao estilhaço apropriado. Sharding é usado por MySQL Cluster , MySQL Fabric (que ainda é bastante alfa até o momento em que este livro foi escrito) e Shard-Query .

    Por fim, o conselho que costumo dar sobre otimização é que todos os métodos listados acima otimizam para uma consulta em detrimento de outras. Por exemplo, a fragmentação é ótima se você ler e gravar linhas individuais, mas a fragmentação torna as coisas piores se você consultar intervalos de linhas que abrangem vários fragmentos.

    • 3

relate perguntas

  • Onde posso encontrar o log lento do mysql?

  • Como posso otimizar um mysqldump de um banco de dados grande?

  • Quando é o momento certo para usar o MariaDB em vez do MySQL e por quê?

  • Como um grupo pode rastrear alterações no esquema do banco de dados?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host

    • 12 respostas
  • Marko Smith

    Como fazer a saída do sqlplus aparecer em uma linha?

    • 3 respostas
  • Marko Smith

    Selecione qual tem data máxima ou data mais recente

    • 3 respostas
  • Marko Smith

    Como faço para listar todos os esquemas no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Jin conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane Como faço para listar todos os esquemas no PostgreSQL? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve