usage innodb_buffer_pool_size increase mysql memory disk

innodb_buffer_pool_size - mysql memory configuration



¿Se crean las tablas con "CREAR TABLA TEMPORAL" en la memoria o en el disco? (2)

Como dijo Mark, depende de qué MOTOR le digas que use. Si no le das un MOTOR, hará "algo", pero no necesariamente lo guardará solo en la memoria. Si desea forzar que la tabla esté en la memoria, debe definirla explícitamente:

CREATE TEMPORARY TABLE foobar (id int) ENGINE=MEMORY;

Sin embargo, el uso del motor de memoria está restringido. Para obtener más información, visite http://dev.mysql.com/doc/refman/5.5/en/internal-temporary-tables.html .

En MySql, cuando crea una tabla temporal, por ejemplo, "CREAR TABLA TEMPORAL ...", ¿esa tabla se crea y mantiene en la memoria o en el disco?

He leído los documentos y lo he buscado en Google y no he encontrado una respuesta.


Depende del motor que especifiques. Por defecto, los datos de la tabla se almacenarán en el disco. Si especifica el motor de MEMORIA, los datos solo se almacenarán en la memoria.

Debería ser posible encontrar realmente los archivos que se crean en el sistema de archivos cuando se crean las tablas temporales. Después de ejecutar los siguientes comandos:

CREATE TABLE test.table_myisam (x int) ENGINE=MyISAM; CREATE TABLE test.table_memory (x int) ENGINE=MEMORY; CREATE TEMPORARY TABLE test.temp_table_myisam (x int) ENGINE=MyISAM; CREATE TEMPORARY TABLE test.temp_table_memory (x int) ENGINE=MEMORY;

Luego comprobé el directorio: C: / ProgramData / MySQL / MySQL Server 5.5 / data / test (en Windows) y los archivos presentes fueron:

table_innodb.frm # Table definition. table_innodb.MYD # MyISAM table data file. table_innodb.MYI # MyISAM table index file. table_memory.frm # No MYD or MYI file for the MEMORY engine.

Las tablas temporales se almacenan en C: / Windows / Temp y tienen nombres inusuales, pero internamente los datos se almacenan de la misma manera.

#sql9a0_7_d.frm # This is the MyISAM temporary table. #sql9a0_7_d.MYD # MyISAM data file for temporary table. #sql9a0_7_d.MYI # MyISAM index file for temporary table. #sql9a0_7_c.frm # This is the MEMORY engine file. No MYD or MYI.