I have a table that maps ip-ranges to countries: each record consists of 2
ip numbers (unsigned int's) and the country in which all ip's between those
two are located.
How should I setup the table to have fast ip lookups ?
Making a primary key of the 2 ip's and doing a 'select .. between ip1 and
ip2' doesn't use the index:

mysql> explain select * from ipcountry where 123456789 between ip1 and ip2;
+-----------+------+---------------+------+---------+------+-------+--------
-----+
| table     | type | possible_keys | key  | key_len | ref  | rows  | Extra
|
+-----------+------+---------------+------+---------+------+-------+--------
-----+
| ipcountry | ALL  | NULL          | NULL |    NULL | NULL | 58229 | Using
where |
+-----------+------+---------------+------+---------+------+-------+--------
-----+

Should I add a helper column - f.e. a column that contains the 'leftmost'
byte of the ip - and index that ?

Thanks,
Willem Bison



-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to