Hi Dan,
try to create composite index on id, domain and score
ALTER TABLE ADD INDEX indexName (id, domain, score)
Dusan
- Original Message -
From: "Dan Sashko" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Wednesday, December 01, 2004 4:26 AM
Subject: A Select improvement
Hi, anyone has suggestions what changes to make to allow this query to run
faster?
SELECT domain FROM tbl_1
WHERE
id > 0 and id < 2
domain = "12.221.190.111"
AND score IS NOT Null
AND data LIKE "%param=search"
GROUP BY domain, data
--
every one of those WHERE clauses makes the query very slow.
for about 50 million records with 200-900 thousand matching records it
takes about two minutes if I only have the straight domain = "some
string",
then almost quadriples if I add the data Like "pattern" clause.
It is very slow considering that the WHERE has to be ran many many times
with different parameters
here is table info :
# Table: 'tbl_1'
#
CREATE TABLE `tbl_1` (
`id` int(10) unsigned NOT NULL auto_increment,
`domain` varchar(50) NOT NULL default '',
`data` varchar(200) default '',
`score` int(11) default NULL,
PRIMARY KEY (`id`),
KEY `score` (`score`),
KEY `domain` (`domain`),
FULLTEXT KEY `data` (`data`)
) TYPE=MyISAM;
heres query info (it remains the same if i remove some WHERE
clauses except for rows count going up when i do:
table| type | possible_keys | key| key_len
| ref| rows | Extra |
tbl_1|ref | score,domain | domain | 50
| const |1 | Using where; Using temporary; Using filesort
|
---
thank you
--
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]