Как ускорить выборку?

Тема в разделе "Базы данных", создана пользователем Tima111, 2 июн 2010.

Статус темы:
Закрыта.
Модераторы: latteo
  1. Tima111

    Tima111 Читатель

    Заблокирован
    Регистр.:
    5 июл 2007
    Сообщения:
    218
    Симпатии:
    486
    Есть таблица с двуями полями a1 и a2. Вес таблицы 4Гб, записей 34миллиона. Сделал индекс для поля a1.
    Делаю выборку по таблице - "SELECT * FROM `tabl` where `a1` like '***' LIMIT 0 , 30"
    Исполняется очень долго, больше 10 минут.
    А если делать так: "SELECT `a1` FROM `tabl` where `a1` like '***' LIMIT 0 , 30", тогда выборка происходит за сотые секунды.
    Но мне нужны данные и из второго поля. Почему запрос через звёздочку исполняется так долго?
    Типы поля:
    a1 - varchar(80)
    a2 - text (примерно 80-100 символов в каждой строке)
    Как ускорить выборку по обоим полям?
    Решил проблему уже... Оказывается из-за типа полей это было, изменил тип поля a2 на varchar и проблема решилась :yahoo:
     
    KEPZ нравится это.
  2. diavolic

    diavolic

    Регистр.:
    17 мар 2010
    Сообщения:
    522
    Симпатии:
    102
    похожая проблема рассматривается здесь - Перейти по ссылке, и изменение типа поля это полумера, ведь оно не используется в блоке WHERE
     
Статус темы:
Закрыта.