Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да накарам mysql MEMORY ENGINE да съхранява повече данни?

Трябва да коригирате начина, по който правите и зареждате таблицата

CREATE TABLE sns_memory SELECT * FROM sns WHERE 1=2;
ALTER TABLE sns_memory ENGINE=MEMORY;
INSERT INTO sns_memory SELECT * FROM sns;
DROP TABLE sns;
ALTER TABLE sns_memory RENAME sns;

Това ще заобиколи всички наложени ограничения от tmp_table_size и max_heap_table_size .

По същия начин трябва да направите две неща:

Добавете това към /etc/my.cnf

[mysqld]
tmp_table_size=2G
max_heap_table_size=2G

това ще обхване рестартирането на mysql. За да зададете тези стойности в mysqld точно сега, без да рестартирате, изпълнете това:

SET GLOBAL tmp_table_size = 1024 * 1024 * 1024 * 2;
SET GLOBAL max_heap_table_size = 1024 * 1024 * 1024 * 2;

Ако проверявате горните променливи с

SELECT @@max_heap_table_size;

или

SHOW VARIABLES LIKE 'max_heap_table_size';

може да забележите, че изглежда не се променят след SET GLOBAL... изявления. Това е така, защото настройките се прилагат само за нови връзки към сървъра. Направете нова връзка и ще видите, че стойностите се актуализират или можете да я промените в рамките на сесията си, като изпълните:

SET tmp_table_size = 1024 * 1024 * 1024 * 2;
SET max_heap_table_size = 1024 * 1024 * 1024 * 2;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql jdbc драйвер не поддържа разделители в тригери с множество изрази

  2. Недефиниран индекс:потребителско име в C:\wamp\www\Website\storeadmin\admin_login.php..и същото за парола

  3. Какъв е типът на този низ? a:1:{s:2:en;}

  4. Как да свържете две таблици с ssp.class.php

  5. MySQL Вмъкване на големи набори от данни от файл с Java