SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 21.02.2009 22:11:59

iwsb
Участник
Зарегистрирован: 19.11.2008
Сообщений: 6

NDB кластер - медленные селекты

Есть кластер на нескольких машинах. Есть таблица на 8млн записей - размер примерно 4 гигабайта.
Проблемы
1) некоторые селекты выполняются по несколько минут. я так понял что при использовании order by главная нода кластера запрашивает всю таблицу для сортировки - ну и 4гигабайта перетянуть по локальной сети занимает некоторое время.
2) скорость одного и того же запроса уж очень сильно зависит от данных
например
---
SELECT u.id, u.user, u.year, u.month, u.day, u.location, u.gender, u.feature FROM `phpfox_user` AS u WHERE 1 AND u.p_update > 0 LIMIT 0,9;

/* Результат : "записей извлечено: 9 (5,391 с)" */

SELECT u.id, u.user, u.year, u.month, u.day, u.location, u.gender, u.feature FROM `phpfox_user` AS u WHERE 1 AND u.p_update > 1235163600 LIMIT 0,9;

/* Результат : "Пустой набор (00:01:26)" */
--
Вопрос - есть ли возможность для NDB кластера с 8 млн записей ускорить select с использованием order by, а также можно ли ускорить селекты которые занимаются полным перебором данных и при это ничего не возвращают (см. последний запрос)?

Неактивен

 

#2 22.02.2009 02:43:09

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: NDB кластер - медленные селекты

1. ORDER BY будет выполняться на sql-ноде в любом случае. Ускорить можно только изменением самого запроса - добавить WHERE, чтобы не заставлять сервер скачивать все, а затем сортировать.

2. нужно включить engine_condition_pushdown (см SHOW VARIABLES LIKE 'engine_condition_pushdown'), тогда сравнение будет выполняться на дата-нодах без выгрузки на sql-ноду

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson