ФорумРазработкаБазы данных → нешутоШный запрос

нешутоШный запрос

  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 22 ноября 2011 г. 11:50, спустя 1 час 14 минут 24 секунды


    varchar медленнее?
    подозреваю что да :-)

    так как он имеет ограничения как у text(то есть больше 255 байт как у char'а) , только можно сузить его размер, насколько я понимаю это какбы "управляемый текст" :-)

    иии он явно хранится более интересно чем простые типы аля char :)

    хотя это все мои домыслы, чтобы их доказать или опровергнуть надо копать код мускуля, а мне это не охото и не интересно и некогда :)
    Спустя 17 сек.
    кто копал или в курсе - поправьте меня если я не прав)
    Сапожник без сапог
  • artoodetoo

    Сообщения: 5139 Репутация: N Группа: в ухо

    Spritz 22 ноября 2011 г. 19:33, спустя 7 часов 42 минуты 28 секунд

    ядумаю это непринципиально CHAR или VARCHAR. главное чтобы не text.
    встречал упоминания, что char немного быстрее при чтении данных "average 20% faster", в данном случае общий прирост скорости будет никак не 20%, тут другие факторы весомее. надо упрощать и индексировать.
    ιιlllιlllι унц-унц
  • artoodetoo

    Сообщения: 5139 Репутация: N Группа: в ухо

    Spritz 22 ноября 2011 г. 19:45, спустя 12 минут 12 секунд

    char/varchar это уже микрооптимизация. интернеты говорят, что для редкоизменяемых таблиц (справочников), над которыми периодически делают OPTIMIZE TABLE предпочтительнее CHAR. а при интенсивных UPDATE важнее меньший размер, т.е. VARCHAR

    все это мизер. надо чтобы структуры были спроектированы под задачу, а не хрен знает как.
    ιιlllιlllι унц-унц
  • master

    Сообщения: 3236 Репутация: N Группа: Джедаи

    Spritz 22 ноября 2011 г. 20:10, спустя 24 минуты 53 секунды

    char - это просто один из способов сделать фиксированную длину строки
    не всё полезно, что в swap полезло
  • sweet15w

    Сообщения: 139 Репутация: N Группа: Кто попало

    Spritz 22 ноября 2011 г. 20:44, спустя 34 минуты 42 секунды

    сделал текстовые поля char

    добавил индексы, как посоветовал phpdude, и его запрос:


    (
    SELECT DISTINCT email, date_active
    FROM subscription
    WHERE activate = '1'
    )
    UNION (

    SELECT DISTINCT v.email, v.date_active
    FROM viewer_checked v
    LEFT JOIN subscription s
    USING ( email )
    WHERE s.id = NULL
    AND v.activate =1
    AND s.activate =1
    )
    ORDER BY date_active, email


    время выполнения стало равным 0.0342 сек. это вообще суть )))

    спасибо всем
  • Sinkler

    Сообщения: 8083 Репутация: N Группа: в ухо

    Spritz 22 ноября 2011 г. 22:06, спустя 1 час 21 минуту 39 секунд

    добавил индексы

    как оказывается, в этом проблема большей части пишущих сюда
  • TRIAL

    Сообщения: 988 Репутация: N Группа: Джедаи

    Spritz 22 ноября 2011 г. 22:46, спустя 40 минут 19 секунд

    Кто-нибудь может подсказать действительно толковую книгу по MySQL (SQL). Часто сам начал сталкиваться с такими вот вещами когда 1 запрос при 2-3к записей начинает выполнятся из-за того что криво написан. В нэте читать пробовал, но книги в электронном виде на дух не переношу. А грамотная БД это наше всё :) Это не говнокод, на который порой можно глаза закрыть :)
    from TRIAL with LOVE
  • Flare

    Сообщения: 284 Репутация: N Группа: Кто попало
  • Givi

    Сообщения: 2284 Репутация: N Группа: Адекваты

    Spritz 22 ноября 2011 г. 23:55, спустя 4 минуты 3 секунды

    sweet15w, а попробуй (чисто ради спортивного интереса на что способны индексы) свой первоначальный запрос выполнить. Просто глянуть какой прирост дадут только индексы и изменение типа поля.
  • Faster

    Сообщения: 1159 Репутация: N Группа: Кто попало

    Spritz 23 ноября 2011 г. 2:43, спустя 2 часа 47 минут 56 секунд


    Кто-нибудь может подсказать действительно толковую книгу по MySQL (SQL). Часто сам начал сталкиваться с такими вот вещами когда 1 запрос при 2-3к записей начинает выполнятся из-за того что криво написан. В нэте читать пробовал, но книги в электронном виде на дух не переношу. А грамотная БД это наше всё :) Это не говнокод, на который порой можно глаза закрыть :)

    начни с
    нормализации
    индексы
    составные индексы
    типы полей
    как подсказывает практика - самая ценная инфа - на форумах. мануал лишь дает синтаксис
  • TRIAL

    Сообщения: 988 Репутация: N Группа: Джедаи

    Spritz 23 ноября 2011 г. 3:57, спустя 1 час 13 минут 27 секунд

    Ок, спасибо. Постараюсь найти книжку и посмотреть что там пишут.
    На счет форумов согласен, но в любом случае чтоб хоть основы элементарные знать книжка не помешает.
    from TRIAL with LOVE
  • sweet15w

    Сообщения: 139 Репутация: N Группа: Кто попало

    Spritz 23 ноября 2011 г. 9:18, спустя 5 часов 21 минуту 17 секунд

    sweet15w, а попробуй (чисто ради спортивного интереса на что способны индексы) свой первоначальный запрос выполнить. Просто глянуть какой прирост дадут только индексы и изменение типа поля.

    ок завтра с утра сделаю… но я сомневаюсь что это из-за индексов… запрос запрос… то ли join то ли select … where ( select … )
  • Kikky

    Сообщения: 201 Репутация: N Группа: Кто попало

    Spritz 23 ноября 2011 г. 14:54, спустя 5 часов 36 минут 4 секунды

    меня тоже индексы не раз спасали = )
  • sweet15w

    Сообщения: 139 Репутация: N Группа: Кто попало

    Spritz 23 ноября 2011 г. 18:50, спустя 3 часа 56 минут 24 секунды

    хоу ))) 0.1304 сек старый запрос тащит ))))
  • Kikky

    Сообщения: 201 Репутация: N Группа: Кто попало

    Spritz 24 ноября 2011 г. 0:53, спустя 6 часов 2 минуты 9 секунд

    Почему же сразу письма, подключая до десятка таблиц в запросе чувствуешь мощь индексов!

Пожалуйста, авторизуйтесь, чтобы написать комментарий!