Anda harus menyesuaikan cara Anda membuat dan memuat tabel
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;
Ini akan mengatasi batasan yang diberlakukan dengan
Sama saja, Anda perlu melakukan dua hal:
Tambahkan ini ke /etc/my.cnf
[mysqld]
tmp_table_size=2G
max_heap_table_size=2G
ini akan mencakup restart mysql. Untuk menetapkan nilai-nilai ini di mysqld sekarang tanpa memulai ulang, jalankan ini:
SET GLOBAL tmp_table_size = 1024 * 1024 * 1024 * 2;
SET GLOBAL max_heap_table_size = 1024 * 1024 * 1024 * 2;
Jika Anda memeriksa variabel di atas dengan
SELECT @@max_heap_table_size;
atau
SHOW VARIABLES LIKE 'max_heap_table_size';
Anda mungkin memperhatikan bahwa mereka tampaknya tidak berubah mengikuti SET GLOBAL...
pernyataan. Ini karena pengaturan hanya berlaku untuk koneksi baru ke server. Buat koneksi baru, dan Anda akan melihat pembaruan nilai atau Anda dapat mengubahnya dalam sesi Anda dengan menjalankan:
SET tmp_table_size = 1024 * 1024 * 1024 * 2;
SET max_heap_table_size = 1024 * 1024 * 1024 * 2;