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 / 276586
Accepted
Shahid Thaika
Shahid Thaika
Asked: 2020-10-06 23:43:05 +0800 CST2020-10-06 23:43:05 +0800 CST 2020-10-06 23:43:05 +0800 CST

Há perda de desempenho em linhas inseridas fora de sequência (MySQL InnoDB)

  • 772

Estou tentando migrar de uma instância do MySQL AWS RDS com um SSD enorme e muito espaço em excesso para um pequeno, e a migração de dados é o único método. Existem quatro tabelas no intervalo de 330 GB a 450 GB e a execução do mysqldump, em um único thread, enquanto o encaminhamento direto para a instância RDS de destino é estimado em cerca de 24 horas por pv (copiando a 5 mbps).

Eu escrevi um script bash que chama vários mysqldump usando ' & ​​' no final e um --whereparâmetro calculado, para simular multithreading. Isso funciona e atualmente leva menos de uma hora com 28 threads.

No entanto, estou preocupado com qualquer perda potencial de desempenho durante a consulta no futuro, pois não estarei inserindo na sequência das colunas auto_increment id.

Alguém pode confirmar se esse seria o caso ou se estou sendo paranóico sem motivos.

Qual solução você usou para uma única tabela que está na casa dos 100 GB? Por um motivo específico, quero evitar o uso do AWS DMS e definitivamente não quero usar ferramentas que não são mantidas há algum tempo.

mysql migration
  • 3 3 respostas
  • 71 Views

3 respostas

  • Voted
  1. nbk
    2020-10-07T01:20:05+08:002020-10-07T01:20:05+08:00

    As tabelas são por natureza não classificadas, portanto você não terá nenhuma perda de desempenho nesse site, após inserir seus dados, mas não sabemos como suas instâncias são menores, não podemos dizer o impacto que isso terá.

    Seu índice nesse campo será classificado e, portanto, encontrará as linhas desejadas com bastante rapidez, pelo menos mais rápido do que a varredura da coluna do furo.

    • 1
  2. madProgrammer
    2020-10-07T04:57:24+08:002020-10-07T04:57:24+08:00

    Não é alto, não há problema de desempenho em nenhuma das causas

    • 0
  3. Best Answer
    bbaird
    2020-10-07T05:10:37+08:002020-10-07T05:10:37+08:00

    Você está correto que causará a fragmentação do índice clusterizado. No entanto, se for uma coluna de incremento automático, os dados não foram realmente classificados por nada significativo. Você passou de uma bagunça não classificada para uma bagunça não classificada diferentemente classificada.

    Selecionando/atualizando/lendo algumas linhas por vez? Não é grande coisa - a árvore B ainda saberá como encontrar a página correta sem muito esforço adicional.

    Você terá problemas se estiver tentando dividir grandes atualizações/exclusões usando intervalos da coluna de incremento automático, pois as linhas serão espalhadas pelas páginas.

    Se o desempenho se tornar um problema, você pode reconstruir o índice, as versões mais recentes do MySQL devem ser capazes de fazer isso sem deixar a tabela offline.

    Como um aparte - você tentou classificar os dados pela coluna de incremento automático e depois executar um carregamento em massa?

    • 0

relate perguntas

  • Existem ferramentas de benchmarking do MySQL? [fechado]

  • 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