Yep, you're right!

Perhaps an extra byte is automatically reserved, not only for a null/not null status bit, but also for other internal use - eg; a 'row changed' bit, etc.

I did a quick test:

mysql> create table t2 (c1 varchar(255));
Query OK, 0 rows affected (0.00 sec)

mysql> insert into t2 values ('s');
Query OK, 1 row affected (0.00 sec)

And this gave table status of

Name: t2
Type: MyISAM
Row_format: Dynamic
Rows: 1
Avg_row_length: 20
Data_length: 20
Max_data_length: 4294967295
Index_length: 1024
Data_free: 0
Auto_increment: NULL

so obviously the avg_row_length includes extra bytes for mysql internal info.

Learn something every day!

-steve


At 1:03 PM +0100 1/15/03, you wrote:
Steve,

 I believe there is an extra byte for the 'null' flag; if you declare
 this column to be NOT NULL, I'll bet the avg length will be 10.
nice bet, but you lose <g>:

mysql> DESCRIBE mynotnullisam;
+-------+----------+------+-----+---------+-------+
| Field | Type     | Null | Key | Default | Extra |
+-------+----------+------+-----+---------+-------+
| col   | char(10) |      |     |         |       |
+-------+----------+------+-----+---------+-------+
1 row in set (0.16 sec)

mysql> SHOW TABLE STATUS LIKE 'mynotnullisam';
+---------------+--------+------------+------+----------------+---------
----+
| Name          | Type   | Row_format | Rows | Avg_row_length |
Data_length |
+---------------+--------+------------+------+----------------+---------
----+
| mynotnullisam | MyISAM | Fixed      |    3 |             11 |
33 |
+---------------+--------+------------+------+----------------+---------
----+


--
+------------------------------------------------------------------------+
| Steve Edberg                                      [EMAIL PROTECTED] |
| University of California, Davis                          (530)754-9127 |
| Programming/Database/SysAdmin               http://pgfsun.ucdavis.edu/ |
+------------------------------------------------------------------------+
| SETI@Home: 1001 Work units on 23 oct 2002                              |
| 3.152 years CPU time, 3.142 years SETI user... and STILL no aliens...  |
+------------------------------------------------------------------------+

---------------------------------------------------------------------
Before posting, please check:
  http://www.mysql.com/manual.php   (the manual)
  http://lists.mysql.com/           (the list archive)

To request this thread, e-mail <[EMAIL PROTECTED]>
To unsubscribe, e-mail <[EMAIL PROTECTED]>
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php

Reply via email to