- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Как удалить плохие SEO-ссылки и очистить ссылочную массу сайта
Применяем отклонение ссылок
Сервис Rookee
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Есть таблица на 2,5 млн записей, на диске занимает 200 Мб.
Скрипт выбирает с таблицы 20 строк по ID. Требуется на это 3 секунды. Ума не приложу, в чем причина.
MyISAM. Поле ID, конечно же с индексом. key_buffer 850 Mb
Debian, SSD, 1GB RAM.
explain
профилирование
Покажите запрос.
Кроме вас в этот момент с таблицей кто-то работает на изменение? Блокировка ни какая не устанавливается?
По ходу проблема была в инструменте.
Тестировал скорость запросом, который, как мне казалось, тождественен запросу из скрипта. Этот занимает 3,5 сек.
Но теперь вижу что если написать вручную набор случайных ID, то запрос выполняется быстро (0,015 сек)
По ходу проблема была в инструменте.
ну для начала это ужас замените на ORDER BY RAND() LIMIT 20
Хотя RAND все ровно будет не очень быстр. Тут наверно лучше думать реализацию через BETWEEN
kalim, посмотрите в сторону "генерировать 20 рандомных ID в скрипте и делать запрос с IN ()", rand() в запросе будет тормозить
Прошу прощения, я вас и себя только запутал этим RAND().
Мне не нужны рандомные ID. Все они получены в предыдущем запросе по другой таблицу, обработаны PHP и оставлены 20 самых "подходящих" для этого запроса о котором я спрашивал. А RAND() тут ввел исключительно чтобы можно было тестировать запрос (ведь если я забью 111, 222, 333 запрос закешируется - я имею ввиду подтянутся в память блоки с ключами). В коде у меня "SELECT * FROM tab WHERE id IN (111, 32, 545 ...)" формируется.
Запрос в "естественной среде" работает нормально - 20 записей 0,02 сек.
Запрос мог закешироваться.