В tb с 1 мил. строки, если я не делаю (после того, как я перезагрузить компьютер - так ничего это кэшированные):
1. SELECT price,city,state FROM tb1 WHERE zipId=13458;
результат является 23rows в 0.270sЧто происходит быстрее, кэш key_cache или OS?
после я бегу «ЗАГРУЗИТЬ INDEX INTO CACHE ТВ1» (key_buffer_size = 128M и общий индекс размер туберкулезу является 82M): 2. SELECT price,city,state FROM tb1 WHERE zipId=24781;
результат 23rows в 0.252s, Key_reads остается постоянной, Key_read_requests увеличивается с 23
BUT
после того, как загрузить «zipId» в кэш ОС, если я запускаю снова запрос:
2. SELECT price,city,state FROM tb1 WHERE zipId=20548;
результат: 22rows in 0.006s
Это простой пример, но я выполняю десятки тестов и комбинаций. Но результаты всегда одни и те же.
Я использую: MySql с MyISAM, WINDOWS 7 64, а query_cache - 0; zipId это обычный индекс (не первичный ключ)
НЕ ДОЛЖЕН, чтобы key_cache был быстрее, чем кэш ОС?
НЕ ДОЛЖЕН быть большой разницей в скорости, после загрузки индекса в кеш?
(в моем тесте почти нет разницы).
Я прочитал много веб-сайтов, учебников и блогов по этому вопросу, но ни один из них не обсуждает разницу в скорости. Таким образом, любые идеи или ссылки будут высоко оценены.
Спасибо.
Что такое дизайн стола? Ключевой кеш не будет быстрым, если используемый индекс не покрывает сипид, цену, город и состояние. Otherwize запрос читает индекс, а затем таблицу. – 2010-11-25 01:30:46
@Thomas Jones-Low Индекс охватывает все 3 col. Я сделал несколько тестов, и это не имеет большого значения, если я выбираю 1 или 3 col. ИЛИ, если индексированные столбцы выделены или нет. – silversky 2010-11-25 02:01:09