MySQL 5.6 – ISL Files

InnoDB introduced *.isl (InnoDB Symbolic Link) files in MySQL 5.6 to help users find the data files for tables created using the CREATE TABLE command. DOCUMENT DIRECTORY. Because they are not located in the same data directory as regular file-per-table tablespaces, InnoDB refers to them as remote tablespaces.

To store the remote path, we additionally added the InnoDB system tables SYS TABLESPACES and SYS DATAFILES. Since the system tablespace and system tables are recovered simultaneously with all of the distant tablespaces, that path is not accessible during the REDO portion of recovery.

These *.isl files serve the following purposes:

  • Permit file discovery prior to the release of DD metadata.
  • Provide a method for moving a tablespace file while the server is offline, and when the table is accessed the following time, update the DD metadata.

The Global Data Dictionary tables will take the place of the InnoDB SYS_* tables. From low-level InnoDB code, such as when opening a table, updating the data dictionary tables won’t be feasible anymore. From low-level operations, the SYS DATAFILES table that was first introduced in 5.6 was updated.

Future versions of InnoDB will be able to locate any tablespace file specified in the REDO log, enabling recovery to be completed without the need for *.isl files. However, in order to address the portability problem, redo log processing must reference the *.isl if the original file location is inaccessible.

For both use scenarios, a substitute for *.isl files will be offered. Only when the server starts up will the replacement mapping be consulted. As a result, when tables are opened during regular server operation, there won’t be any unexpected adjustments to the data dictionary.

Note that there has never been a mechanism to transfer files around with SQL other than through export/import or a table-rebuilding ALTER TABLE (online operation starting with MySQL 5.6).

So, don’t get them deleted.

 

Treinamento Gratuito de MySQL – Live 2

Que tal fazer um treinamento sobre os fundamentos do MySQL? Totalmente na vasca (gratuito pô), dividido em 10 lives (yeah, vai ver minha carinha linda). Não que eu seja uma visão do paraiso, mas, vou fazer minha parte nessa pandemia, incomodando voces, aos pouquinhos, 1 hora por live, duas vezes por semana? Bora?

Segue a página para inscrição:

https://www.eventbrite.com/x/treinamento-mysql-02-fundamentos-tickets-104829527940

Manipulando estrutura de dados XML no MySQL

O formato XML está por aí faz um bom tempo. Salvo engano desde 1998. Quem trabalha com aplicações web, certamente, já tropeçou no XML.

O XML (eXtensible Markup Language) é uma estrutura de dados criada com o objetivo de tornar estes dados de fácil leitura por humanos (nós) and por máquinas. “Markup” porque usa marcações (tags) para determinar o início e fim de um dado.

Sua estrutura de dados é, de fato, bastante simples. Totalmente textual, ou seja, lida por olhos humanos. E, é muito usada na troca de dados entre aplicações/serviços de web, entre outros.

Muito tem sido dito que JSON substitui o XML. Minha opinião? Um dia pode ser que sim. Mas, atualmente, há muitas aplicações legadas, atuais, e, novas sendo criadas utilizando-se a estrutura de dados do XML. Sempre achei XML elegante, mas, que consome espaço demais (muito verbosa). E, o fato de ser obrigado a abrir e fechar uma marcação (tag) sempre me aborreceu. Portanto, acredito que ainda veremos muito XML por aí.

Continue lendo Manipulando estrutura de dados XML no MySQL