Eu uso minha máquina doméstica como meu banco de dados pessoal para meu projeto de análise de hobby. Esta máquina possui um SSD para a unidade principal onde o MySQL armazena seus dados. Ele também possui um disco rígido secundário maior e não um SSD. Estou prestes a criar uma tabela que temo ser muito grande para caber no meu SSD; é possível armazenar essa tabela na unidade maior (mas mais lenta)? Se for importante, geralmente estou usando tabelas MyISAM, mas posso ser persuadido a usar o InnoDB se isso ajudar.
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?
A migração de uma única tabela MyISAM para outro disco só é possível em versões Linux, não Windows, do MySQL com as cláusulas DATA DIRECTORY e INDEX DIRECTORY de ALTER TABLE em uma tabela MyISAM.
No entanto, no Windows, você pode mover manualmente os arquivos .MYD e .MYI para onde desejar.
ATUALIZAÇÃO 2012-01-03 22:03 EDT
Interessante, o MySQL 5.5.15 em minhas máquinas Windows 7 diz que existe suporte a links simbólicos:
Também descobri que o link simbólico é possível no Windows:
mklink
Em minhas máquinas domésticas com Windows 7, existe o utilitário de linha de comando :ESTOU CHOCADO !!! Isso significa que você pode experimentar
CREATE TABLE ... DATA DIRECTORY='...' INDEX DIRECTORY='...'
no Windows.Acabei de tentar isso:
Acabei de receber isso:
Você ainda não pode usar a opção
DATA DIRECTORY
AND em ou .INDEX DIRECTORY
CREATE TABLE
ALTER TABLE
ATUALIZAÇÃO 2012-01-03 22:45 EDT
Eu executei esses comandos
Eu fiz dois diretórios
mkdir C:\dat
mkdir C:\ndx
Eu criei essas pastas e criei hard links para data_table_sharded
Voltei ao MySQL e carreguei os dados de data_table:
Então, isso pode ser feito. Basta usar
mklink
para criar hard links em vez de links simbólicos. UAU !!!Eu aprendi algo sobre MySQL para Windows. Duvido que a Oracle implemente as opções
DATA DIRECTORY
eINDEX DIRECTORY
, já que o mecanismo de armazenamento padrão agora é o InnoDB.Não obstante, você cria a tabela vazia, move os .MYD e .MYI para pastas diferentes do sistema operacional, cria hard links, executa
FLUSH TABLES;
e INSERT seus dados.Experimente, e deixe-me saber como foi...
Como já discutido aqui, não há suporte automático para links simbólicos no MySQL. No entanto, você mesmo pode criar links simbólicos.
Mova os arquivos do diretório de dados para outro lugar, pois o administrador cria links simbólicos com
mklink caminho original novo caminho
Se você tiver um Windows antigo (digamos, XP ou Windows 2003), isso não funcionaria. o suporte a links simbólicos em NTFS estreou no Vista.
A resposta de Rolando quase funciona, exceto que requer links físicos. Pelo que entendi, links físicos não são possíveis entre 2 unidades físicas diferentes (usar uma unidade física diferente é a única razão pela qual desejo um novo diretório).
No entanto, sua resposta (e a de Vladislav ) me inspirou a encontrar uma resposta que parece funcionar para mim. Resumindo, crie um
database_name.sym
arquivo e coloque-o no diretório dedatabase_name
dados do diretório. Coloque o nome do novo diretório nesse.sym
arquivo e mova odatabase_name
diretório de dados para o novo local referenciado no.sym
arquivo.O uso de links físicos para isso requer a criação de um link físico para cada arquivo. Usar o comando /J no mklink cria uma junção de diretório e, após esse comando, o mysql gravaria os arquivos no diretório na outra unidade. Por exemplo, você pode criar uma junção para C:\dat em sua unidade mais lenta e deixar C:\ndx no SSD para acesso mais rápido quando as consultas forem indexadas.