Description:
sum() result set is very slow on solaris than linux.
I tested it several times for different OS, one is solaris. another is linux.
[root@server1 bin]# uname -a
Linux server1 2.6.9-34.ELsmp #1 SMP Fri Feb 24 16:54:53 EST 2006 i686 i686 i386 GNU/Linux
mysql> select sum(message_size) from zt_message where domain_idx = 0 and member_sn = 254;
+-------------------+
| sum(message_size) |
+-------------------+
| 94977954 |
+-------------------+
1 row in set (0.04 sec)
[/usr/local/mysql/bin]#>uname -a
SunOS SRSS2 5.9 Generic_122300-03 sun4u sparc TAD,SPARCLE
mysql> select sum(message_size) from zt_message where domain_idx = 0 and member_sn = 254;
+-------------------+
| sum(message_size) |
+-------------------+
| 94977954 |
+-------------------+
1 row in set (16.74 sec)
this is table schema:
CREATE TABLE `zt_message` (
`domain_idx` int(11) NOT NULL,
`member_sn` int(11) NOT NULL,
`message_sn` int(11) NOT NULL,
`message_type` char(2) default NULL,
`mailbox_code` char(4) default NULL,
`delete_flag` int(11) default '0',
`attach_list` text character set utf8,
`message_size` bigint(20) default '0',
`readok` int(11) default '0',
`smssend` int(11) default '0',
`subject_header` varchar(250) character set utf8 default NULL,
`date_header` varchar(80) default NULL,
`to_header` text,
`cc_header` text,
`bcc_header` text,
`from_header` varchar(80) default NULL,
`other_header` text,
`body` longtext character set utf8,
`content_type` varchar(50) default NULL,
PRIMARY KEY (`domain_idx`,`member_sn`,`message_sn`),
KEY `zt_message_idx1` (`domain_idx`,`member_sn`,`message_type`,`mailbox_code`,`delete_flag`),
KEY `zt_message_idx2` (`domain_idx`,`member_sn`),
KEY `zt_message_idx3` (`message_type`),
KEY `zt_message_idx4` (`domain_idx`,`member_sn`,`delete_flag`),
KEY `zt_message_idx5` (`domain_idx`,`member_sn`,`mailbox_code`,`delete_flag`)
) ENGINE=MyISAM DEFAULT CHARSET=euckr
I can't understand this result.
function sum() isn't working well on solaris.
Please explain me this problem. what is wrong?
How to repeat:
mysql> select sum(message_size) from zt_message where domain_idx = 0 and member_sn = 254;
this is table schema:
CREATE TABLE `zt_message` (
`domain_idx` int(11) NOT NULL,
`member_sn` int(11) NOT NULL,
`message_sn` int(11) NOT NULL,
`message_type` char(2) default NULL,
`mailbox_code` char(4) default NULL,
`delete_flag` int(11) default '0',
`attach_list` text character set utf8,
`message_size` bigint(20) default '0',
`readok` int(11) default '0',
`smssend` int(11) default '0',
`subject_header` varchar(250) character set utf8 default NULL,
`date_header` varchar(80) default NULL,
`to_header` text,
`cc_header` text,
`bcc_header` text,
`from_header` varchar(80) default NULL,
`other_header` text,
`body` longtext character set utf8,
`content_type` varchar(50) default NULL,
PRIMARY KEY (`domain_idx`,`member_sn`,`message_sn`),
KEY `zt_message_idx1` (`domain_idx`,`member_sn`,`message_type`,`mailbox_code`,`delete_flag`),
KEY `zt_message_idx2` (`domain_idx`,`member_sn`),
KEY `zt_message_idx3` (`message_type`),
KEY `zt_message_idx4` (`domain_idx`,`member_sn`,`delete_flag`),
KEY `zt_message_idx5` (`domain_idx`,`member_sn`,`mailbox_code`,`delete_flag`)
) ENGINE=MyISAM DEFAULT CHARSET=euckr