kopipast
Новичок
низкая эффективность индекса в таблице
Суть проблемы в том, что составление индекса влияет на скорость выборки очень незначительно и почему-то в худшую сторону... Помогите, пожалуйста разобраться.
Структура таблицы (в ней 50.000 записей):
CREATE TABLE `t1` (
`RowId` int( 10 ) unsigned NOT NULL AUTO_INCREMENT ,
`Status` int( 1 ) NOT NULL default '0',
`User` varchar( 20 ) NOT NULL default '',
`Gruppa` varchar( 10 ) NOT NULL default '',
`Data` varchar( 20 ) NOT NULL default '',
PRIMARY KEY ( `RowId` )
) ENGINE = MYISAM DEFAULT CHARSET = cp1251;
копируется в таблицу t2 и добвляется индекс: ALTER TABLE t2 ADD INDEX (User);
Результаты выборки:
SELECT * FROM t1 WHERE USER=4333461384270210 -- 0.06 с.
SELECT * FROM t2 WHERE USER=4333461384270210 -- 0.06 с.
(всего строк выбирается 265)
SELECT * FROM t1 WHERE USER=4333461384270210 LIMIT 250, 10 -- 0.06 с.
SELECT * FROM t2 WHERE USER=4333461384270210 LIMIT 250, 10 -- 0.06 с.
SELECT * FROM t1 ORDER BY USER LIMIT 49000, 10 -- 0.39 с.
SELECT * FROM t2 ORDER BY USER LIMIT 49000, 10 -- 0.3 с.
SELECT * FROM t1 ORDER BY USER LIMIT 0, 10 -- 0.28 с.
SELECT * FROM t2 ORDER BY USER LIMIT 0, 10 -- 0.0005 с.
SELECT * FROM t1 LIMIT 49000, 10 -- 0.045 с.
SELECT * FROM t2 LIMIT 49000, 10 -- 0.045 с.
SELECT * FROM t1 LIMIT 0, 10 -- 0.0015 с.
SELECT * FROM t2 LIMIT 0, 10 -- 0.0015 с.
Версия сервера: 4.1.20
Мануал читал, но буду рад получить ссылки на информацию по этому вопросу.
Заранее благодарен.
Суть проблемы в том, что составление индекса влияет на скорость выборки очень незначительно и почему-то в худшую сторону... Помогите, пожалуйста разобраться.
Структура таблицы (в ней 50.000 записей):
CREATE TABLE `t1` (
`RowId` int( 10 ) unsigned NOT NULL AUTO_INCREMENT ,
`Status` int( 1 ) NOT NULL default '0',
`User` varchar( 20 ) NOT NULL default '',
`Gruppa` varchar( 10 ) NOT NULL default '',
`Data` varchar( 20 ) NOT NULL default '',
PRIMARY KEY ( `RowId` )
) ENGINE = MYISAM DEFAULT CHARSET = cp1251;
копируется в таблицу t2 и добвляется индекс: ALTER TABLE t2 ADD INDEX (User);
Результаты выборки:
SELECT * FROM t1 WHERE USER=4333461384270210 -- 0.06 с.
SELECT * FROM t2 WHERE USER=4333461384270210 -- 0.06 с.
(всего строк выбирается 265)
SELECT * FROM t1 WHERE USER=4333461384270210 LIMIT 250, 10 -- 0.06 с.
SELECT * FROM t2 WHERE USER=4333461384270210 LIMIT 250, 10 -- 0.06 с.
SELECT * FROM t1 ORDER BY USER LIMIT 49000, 10 -- 0.39 с.
SELECT * FROM t2 ORDER BY USER LIMIT 49000, 10 -- 0.3 с.
SELECT * FROM t1 ORDER BY USER LIMIT 0, 10 -- 0.28 с.
SELECT * FROM t2 ORDER BY USER LIMIT 0, 10 -- 0.0005 с.
SELECT * FROM t1 LIMIT 49000, 10 -- 0.045 с.
SELECT * FROM t2 LIMIT 49000, 10 -- 0.045 с.
SELECT * FROM t1 LIMIT 0, 10 -- 0.0015 с.
SELECT * FROM t2 LIMIT 0, 10 -- 0.0015 с.
Версия сервера: 4.1.20
Мануал читал, но буду рад получить ссылки на информацию по этому вопросу.
Заранее благодарен.