alter table engine=memory ERROR 1114

psufnxk2000發表於2016-06-03
alter table  engine=memory   ERROR 1114

ERROR 1114 (HY000): The table '#sql-xxx' is full Using the MEMORY Engine (Doc ID 1622425.1)


In this Document


Symptoms

Cause

Solution

References


APPLIES TO:

MySQL Server - Version 5.6 and later
Information in this document applies to any platform.

SYMPTOMS

When creating, modifying or altering the table engine to MEMORY, you get this error even if max_heap_table_size can host the data:

ERROR 1114 (HY000): The table '#sql-336e_21e' is full

CAUSE

The MEMORY engine can allocate more memory than its InnoDB or MyISAM equivalent.

If the problematic table contains long varchar, the MEMORY engine will allocate fixed length strings so it can take a lot of space in memory, even more when the utf8 or utf8mb4 character set is used.

SOLUTION

Increase max_heap_table to an even larger value.

Consider using InnoDB with a large buffer pool, so that in practice, the data is in memory and can be accessed concurrently unlike MEMORY table data. There is very little reason to use the MEMORY engine nowadays.

REFERENCES

http://dev.mysql.com/doc/refman/5.6/en/server-system-variables.html#sysvar_max_heap_table_size 
http://dev.mysql.com/doc/refman/5.6/en/memory-storage-engine.html 


轉載請註明源出處 
QQ 273002188 歡迎一起學習 
QQ 群 236941212 
oracle,mysql,PG 相互交流

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25099483/viewspace-2113514/,如需轉載,請註明出處,否則將追究法律責任。

相關文章