FWIW, IMO LOB handling is really where MySQL lags behind all other
enterprise database solutions. Firebird, DB2, Oracle, et al all are able
to stream LOB data to and from disk so that it does not all need to be
loaded in memory (multiple times for a single LOB). I would call this a
bug but others would probably prefer to call it a limitation. :) 

-----Original Message-----
From: schlubediwup [mailto:[EMAIL PROTECTED] 
Sent: Monday, May 29, 2006 8:07 AM
To: mysql@lists.mysql.com
Subject: max size of TEXT columns

hi listers,

1. environment:

[EMAIL PROTECTED] ~> uname -a
Linux myhost.mydomain.com 2.6.16-1.2080_2.rhfc5.cubbi_suspend2 #1 Wed
Mar 29 12:54:32 CEST 2006 i686 i686 i386 GNU/Linux [EMAIL PROTECTED] ~>



localhost.(none)> show variables like "version%";
+-------------------------+------------------------------------------+
| Variable_name | Value |
+-------------------------+------------------------------------------+
| version | 5.0.18-standard |
| version_comment | MySQL Community Edition - Standard (GPL) |
| version_compile_machine | i686 |
| version_compile_os | pc-linux-gnu |
+-------------------------+------------------------------------------+
4 rows in set (0.00 sec)

localhost.(none)>



localhost.mydb> show variables like "max%";
+----------------------------+----------------------+
| Variable_name | Value |
+----------------------------+----------------------+
| max_allowed_packet | 1048576 |
....




localhost.mydb> select max(char_length(history)) from my_contacts2;
+---------------------------+
| max(char_length(history)) |
+---------------------------+
| 65535 |
+---------------------------+
1 row in set (0.01 sec)

localhost.mydb>


2. problem
according do the mysql docu TEXT/BLOB fields depend solely on the db 
environment and can grow to any length:


      11.4.3. The |BLOB| and |TEXT| Types


....
The maximum size of a |BLOB| or |TEXT| object is determined by its type,

but the largest value you actually can transmit between the client and 
server is determined by the amount of available memory and the size of 
the communications buffers. You can change the message buffer size by 
changing the value of the |max_allowed_packet| variable, but you must do

so for both the server and your client program. For example, both 
*mysql* and *mysqldump* allow you to change the client-side 
|max_allowed_packet| value. See Section 7.5.2, "Tuning Server 
Parameters" 
<http://www.ayni.com/mysql/optimization.html#server-parameters>, Section

8.3, "mysql - The MySQL Command-Line Tool" 
<http://www.ayni.com/mysql/client-side-scripts.html#mysql>, and Section 
8.8, "mysqldump - A Database Backup Program" 
<http://www.ayni.com/mysql/client-side-scripts.html#mysqldump>.

....

BUT:

The table in consideration contains a column named history containing 
all message text which has been sent to the mail-address in the row in 
question. i ment to have observed that this column in reality does not 
contain all message text from the very beginning. today, i found out 
that the maximum lenght of the history fields in all tables of this kind

is 65535.

when an update is ocurring, the column history is recreated using 
concat(new_text, history) so that the newest text is always at the 
beginning of the column. but the oldest text at the end of the column 
apparently is lost.

3. question

which parameter do i have to change in order to get this TEXT column 
really to any length?

any hint is very much appreciated, thanks in advance.

suomi


-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:
http://lists.mysql.com/[EMAIL PROTECTED]




--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to