आपको टेबल बनाने और लोड करने के तरीके को एडजस्ट करना चाहिए
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;