Hi Jakub,
May I have the same problem in this topic.
My server is a Xeon 4 core with 16GB of RAM running Centos 5 x64bit.
And my table design is:
CREATE TABLE `logtemp` (
`Timecreate` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT ‘Size[MB]: 13.0; Ratio: 537.25’,
`browser_code` TINYINT(4) DEFAULT NULL COMMENT ‘Size[MB]: 49.5; Ratio: 8.36’,
`browser_name` VARCHAR(50) COLLATE utf8_bin DEFAULT NULL COMMENT ‘Size[MB]: 480.2; Ratio: 3.79’,
`browser_ver` VARCHAR(20) COLLATE utf8_general_ci DEFAULT NULL COMMENT ‘Size[MB]: 939.4; Ratio: 1.49’,
`os_name` VARCHAR(50) COLLATE utf8_general_ci DEFAULT NULL COMMENT ‘Size[MB]: 105.3; Ratio: 24.84’,
`os_code` TINYINT(4) DEFAULT NULL COMMENT ‘Size[MB]: 4.7; Ratio: 87.12’,
`os_ver` VARCHAR(20) COLLATE utf8_general_ci DEFAULT NULL COMMENT ‘Size[MB]: 328.1; Ratio: 3.51’,
`bannerid` VARCHAR(100) COLLATE utf8_general_ci DEFAULT NULL COMMENT ‘Size[MB]: 49.7; Ratio: 60.13’,
`ip` INTEGER(11) NOT NULL COMMENT ‘Size[MB]: 783.4; Ratio: 1.88’,
`domain` VARCHAR(150) COLLATE utf8_general_ci DEFAULT NULL COMMENT ‘Size[MB]: 1383.2; Ratio: 3.32’,
`url-path` VARCHAR(255) COLLATE utf8_general_ci DEFAULT NULL COMMENT ‘Size[MB]: 12020.1; Ratio: 1.30’,
`clickorview` TINYINT(4) DEFAULT NULL COMMENT ‘Size[MB]: 0.5; Ratio: 704.55’,
`cookie_create` TIMESTAMP NOT NULL DEFAULT ‘0000-00-00 00:00:00’ COMMENT ‘Size[MB]: 870.1; Ratio: 8.03’,
`guid` VARCHAR(50) COLLATE utf8_general_ci DEFAULT NULL COMMENT ‘Size[MB]: 13079.1; Ratio: 0.70’,
`day` INTEGER(11) DEFAULT NULL COMMENT ‘Size[MB]: 0.2; Ratio: 999.99’,
`month` INTEGER(11) DEFAULT NULL COMMENT ‘Size[MB]: 0.2; Ratio: 999.99’,
`year` INTEGER(11) DEFAULT NULL COMMENT ‘Size[MB]: 0.2; Ratio: 999.99’,
`hour` INTEGER(11) DEFAULT NULL COMMENT ‘Size[MB]: 0.3; Ratio: 999.99’,
`minute` INTEGER(11) DEFAULT NULL COMMENT ‘Size[MB]: 1.0; Ratio: 999.99’,
`is_new` INTEGER(11) DEFAULT NULL COMMENT ‘Size[MB]: 18.1; Ratio: 83.45’,
`geographical` VARCHAR(200) COLLATE utf8_general_ci DEFAULT NULL COMMENT ‘Size[MB]: 2.3; Ratio: 179.01’
)ENGINE=MyISAM
ROW_FORMAT=COMPRESSED CHARACTER SET ‘utf8’ COLLATE ‘utf8_general_ci’
COMMENT=‘Overall compression ratio: 2.228’;
In fact, we use IB for analytic system and the logtemp table may growth about 20 millions of rows per day.
To calculate the totalview in one day we use this query:
select count(guid)
from `allvc`
WHERE clickorview=0
AND (bannerid = '12345678')
AND (timecreate between '2009-03-20 00:00:00' and '2009-03-20 23:59:59')
ORDER BY NULL
Result: 20 586 598
1 rows fetched (4.906 sec)
To calculate totalview in 4 days (from 20th -> 24th)
select count(guid)
from `allvc`
WHERE clickorview=0
AND (bannerid = '12345678')
AND (timecreate between '2009-03-20 00:00:00' and '2009-03-24 23:59:59')
ORDER BY NULL
Result: 95 731 121
1 rows fetched (37.218 sec)
total Unique view in one day (total visitor)
select count(DISTINCT guid)
from `allvc`
WHERE clickorview=0
AND (bannerid = '12345678')
AND (timecreate between '2009-03-20 00:00:00' and '2009-03-20 23:59:59')
ORDER BY NULL
Result: 1 588 993
1 rows fetched (00:01:57)
But when I try to calculate total visitor in 4 days the time return too long, some time the query making IB engine down. So, Can you give me any ideas for this problem? What can I have to do for increase performance?
Regard,
Thanh Nguyen.