We’ve got an instance of ICE running w/one table, 30 col, and approx 50 mil rows (approx 250M of infobright disk space).
I think my SUM() WHERE IN () queries are flipping into mysql optimizer…. They’re just taking too long. Any ideas? help on rewriting these so they’ll be more Infobright/ICE friendly?
thanks,
erin
DETAILS:
1)
SELECT SUM(a2) a2,a1_id a1_id,s_date
s_date FROM stats WHERE p_id IN
(75,189,250,345,359,447,471,516,534,575,576,582,607,629,636,661,748,749,991,995,996,998,999,1000,1001,1002,1003,1004,1005,1006,1026,1032,1065,1093,1094,1106,1107,1108,1109,1110,1111,74)
AND s_date BETWEEN 14390 AND 14419 GROUP BY s_date,a1_id;
And it takes mysql 17.66 sec vs IB’s 10.50 sec
2) With only ONE id in the IN:
SELECT SUM(a2) a2,a1_id a1_id,s_date
s_date FROM stats WHERE p_id in (189) AND s_date BETWEEN 14390
AND 14419 GROUP BY s_date,a1_id;
mysql: .47 sec
IB: 1.5 sec
3) With TWO ids in the IN:
SELECT SUM(a2) a2,a1_id a1_id,s_date
s_date FROM stats WHERE p_id IN (75,189) AND s_date BETWEEN
14390 AND 14419 GROUP BY s_date,a1_id;
mysql 0.81 sec
ib 8 sec
4) This query with two logical OR IDs in the IN
SELECT SUM(a2) a2,a1_id a1_id,s_date
s_date FROM stats WHERE (p_id = 75 OR p_id = 189) AND
s_date BETWEEN 14390 AND 14419 GROUP BY s_date,a1_id;
mysql: .79 sec
IB: 3.00 sec
5) And if I have a NUMBER of IDS in the logical OR:
SELECT SUM(a2) a2,a1_id a1_id,s_date
s_date FROM stats WHERE (p_id = 75 or p_id = 189 or
p_id = 250 or p_id = 345 or p_id = 359 or p_id =
447 or p_id = 471 or p_id = 516 or p_id = 534 or
p_id = 575 or p_id = 576 or p_id = 582 or p_id =
607 or p_id = 629 or p_id = 636 or p_id = 661 or
p_id = 748 or p_id = 749 or p_id = 991 or p_id =
995 or p_id = 996 or p_id = 998 or p_id = 999 or
p_id = 1000 or p_id = 1001 or p_id = 1002 or
p_id = 1003 or p_id = 1004 or p_id = 1005 or
p_id = 1006 or p_id = 1026 or p_id = 1032 or
p_id = 1065 or p_id = 1093 or p_id = 1094 or
p_id = 1106 or p_id = 1107 or p_id = 1108 or
p_id = 1109 or p_id = 1110 or p_id = 1111 or
p_id = 74) AND s_date BETWEEN 14390 AND 14419 GROUP BY
s_date,a1_id;
mysql: 1 min 4.02 sec
IB: 36.5 sec

