2
respostas

[Dúvida] Tablespaces distintas para tabelas e indices.

É possível criar e usar tablespaces distintos para tabelas e outro para indices? Isso faz sentido no MySQL? Haveria um ganho de performance?

2 respostas

Oie, Cleyton! Como está?

É possível criar e utiliza, principalmente quando você busca otimizar o uso de disco e melhorar a gestão de dados. Sobre, o ganho de desempenho pode variar dependendo da configuração e o ambiente em que o MySQL está sendo utilizado. Recomendo que verifique a documentação para se aprofundar nos estudos sobre o tema:

Espero ter ajudado. Conte sempre conosco para te auxiliar.

Bons estudos!

Conforme o artigo:

The InnoDB engine uses a single tablespace within which it manages data and index storage for all InnoDB tables. 
InnoDB can be configured to create each table with its own tablespace, but even so, a table's data and indexes are stored in the same tablespace file.

e

All InnoDB tables that are located within the InnoDB shared tablespace compete for the same common pool of space, and adding indexes depletes storage within this tablespace more quickly. 
However, unlike the files used for MyISAM and BDB tables, the InnoDB shared tablespace is not bound by your operating system's file-size limit, because it can be configured to use multiple files.
As long as you have additional disk space, you can expand the tablespace by adding new components to it.

InnoDB tables that use individual tablespaces are constrained the same way as BDB tables because data and index values are stored together in a single file.

Portanto, atualmente não é possível separar os índices e tabelas em tablespaces distintas, prática comum no Oracle, lembrando que o MySQL é um produto da Oracle.