Bug #4401 Doc Bug: Confusing Description about MEMORY/Heap versus Internal Tables written
Submitted: 3 Jul 2004 21:45 Modified: 26 Jul 2004 18:46
Reporter: Erik Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Documentation Severity:S3 (Non-critical)
Version:4.x OS:Any (ALL)
Assigned to: Documentation Team CPU Architecture:Any

[3 Jul 2004 21:45] Erik
Description:
The wording of this paragraph is confusing.  I had to read it half a dozen times before I finally understood what it was trying to say.

How to repeat:
http://dev.mysql.com/doc/mysql/en/HEAP.html

The MEMORY table property that table contents are stored in memory is one that is shared with internal tables that the server creates on the fly while processing queries. However, internal tables also have the property that the server converts them to on-disk tables automatically if they become too large. The size limit is determined by the value of the tmp_table_size system variable. MEMORY tables are not converted to disk tables.  To ensure that you don't accidentally do anything foolish, you can set the max_heap_table_size system variable to impose a maximum size on MEMORY tables. For individual tables, you can also specify a MAX_ROWS table option in the CREATE TABLE statement.

Suggested fix:
The MEMORY table property, that table contents are stored in memory, is one that is shared with internal tables that the server creates on the fly while processing queries. Internal tables also have the property that the server converts them to on-disk tables automatically if they become too large. The size limit is determined by the value of the tmp_table_size system variable. However, unlike internal tables, MEMORY tables are not converted to disk tables.

 To ensure that you don't accidentally do anything foolish, you can set the max_heap_table_size system variable to impose a maximum size on MEMORY tables. For individual tables, you can also specify a MAX_ROWS table option in the CREATE TABLE statement.

---

{ It could also be helpful to mention how Memory tables impact file descriptor use; e.g. an advantage of memory tables is that they do not consume a file descriptor... }
[3 Jul 2004 21:49] Erik
to further disambiguate:
MEMORY tables are not converted to disk tables.

should probably be:
MEMORY tables are not automatically converted to disk tables.
[26 Jul 2004 18:46] Paul DuBois
Thank you for your bug report. This issue has been addressed in the
documentation. The updated documentation will appear on our website
shortly, and will be included in the next release of the relevant
product(s).

Additional info:

I didn't find the suggested rewrite materially different from
the original. I rewrote it a different way.