ФорумРазработкаБазы данных → Лимит, глубокая выборка)

Лимит, глубокая выборка)

  • md5

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

    Spritz 24 сентября 2011 г. 9:03

    что делать с этой хуетой?

    первая страница (LIMIT 0,30) вытаскивается за 0.002 сек
    последняя (LIMIT 70000, 30) за 4.447 сек

    у всех так? дело в мускле? или что-то с индексами надо придумать?
    все умрут, а я изумруд
  • AlexB

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

    Spritz 24 сентября 2011 г. 9:22, спустя 18 минут 52 секунды

    индексы не причем
    в идеале - отказаться от постраничной разбивки

  • md5

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

    Spritz 24 сентября 2011 г. 9:21, спустя 23 часа 58 минут 41 секунду


    в идеале - отказаться от постраничной разбивки

    каким образом?
    все умрут, а я изумруд
  • AlexB

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

    Spritz 24 сентября 2011 г. 9:22, спустя 1 минуту 1 секунду

    уже терли эту тему
    http://pyha.ru/forum/topic/5812.0
  • md5

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

    Spritz 24 сентября 2011 г. 9:28, спустя 6 минут 23 секунды

    AlexB, я видел
    и не к чему не пришли
    ЛИМИТ хуета, хуярить по страницам - не надо
    только вот, что делать, если нужен постраничный список юзеров, который мне хочется пролистать и просмотреть
    все умрут, а я изумруд
  • AlexB

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

    Spritz 24 сентября 2011 г. 9:38, спустя 9 минут 47 секунд

    вариантов море

    1. сделать кнопки следующая страница и предыдущая
    2. сделать алфавитный указатель и выводить юзеров по букве (двум первым буквам, если их дохуя)
    3. сделать окно поиска юзера по первым буквам

    2 и 3 пункт более юзабельны чем тысяча ссылок на страницы
  • NRG

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

    Spritz 24 сентября 2011 г. 9:39, спустя 1 минуту 4 секунды

    может имеет смысл както "каталогизировать" юзеров и отказатся от пейджера ?
    Спустя 20 сек.
    поддерживаю варианты 2,3 от Алекса
  • md5

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

    Spritz 24 сентября 2011 г. 9:50, спустя 10 минут 37 секунд

    1. сделать кнопки следующая страница и предыдущая

    это однохуйственно разбивке на страницы

    2. сделать алфавитный указатель и выводить юзеров по букве (двум первым буквам, если их дохуя)

    как вариант, да

    3. сделать окно поиска юзера по первым буквам

    ну это уже не то, хочется видеть, потому что иногда ты сам не знаешь, что ищешь :)
    Спустя 29 сек.
    2. сделать алфавитный указатель и выводить юзеров по букве (двум первым буквам, если их дохуя)

    только опять же, если будет дохуя юзеров на букву А
    то ситуация повторится
    все умрут, а я изумруд
  • AlexB

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

    Spritz 24 сентября 2011 г. 9:57, спустя 7 минут 10 секунд


    1. сделать кнопки следующая страница и предыдущая

    это однохуйственно разбивке на страницы
    А вот и нет, здесь возможны легкие запросы, если отказаться от общего пагинатора
    Спустя 136 сек.

    2. сделать алфавитный указатель и выводить юзеров по букве (двум первым буквам, если их дохуя)

    только опять же, если будет дохуя юзеров на букву А
    то ситуация повторится
    в общем-то да повторится, но уже в меньшем масштабе, значит надо продумать механизм быстрого переключения на указатель по N первым буквам
  • md5

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

    Spritz 24 сентября 2011 г. 10:12, спустя 15 минут 24 секунды

    А вот и нет, здесь возможны легкие запросы, если отказаться от общего пагинатора

    например?
    все умрут, а я изумруд
  • technobulka

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

    Spritz 24 сентября 2011 г. 10:27, спустя 14 минут 47 секунд

    а как на счет такого варианта:
    Спустя 20 сек.
    …с аяксом
    Высокоуровневое абстрактное говно
  • AlexB

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

    Spritz 24 сентября 2011 г. 10:32, спустя 5 минут 2 секунды


    А вот и нет, здесь возможны легкие запросы, если отказаться от общего пагинатора

    например?
    ну погугли, тема то баянная …
  • Ivan

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

    Spritz 24 сентября 2011 г. 13:39, спустя 3 часа 7 минут 17 секунд

    Как вариант - продублировать таблицу вверх ногами
    Что-то типа если X стремится к 0 больше чем к 70000, то выборку делать из первой таблицы, иначе из второй сверху
    Память не экономим и больше напряга при записи, но зато сэкономишь эти 4 секунды

    Еще вариант - разбиваешь таблицу на несколько таблиц, от 1 до 10000 в одну, от 10001 до 20000 в другую, потом в третью и тд

    Глупости наверное, но может добавить скорости
  • Givi

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

    Spritz 24 сентября 2011 г. 14:15, спустя 35 минут 51 секунду

    Ivan, оба твои варианта хуета какая-то.
    Вообще достаточно было бы узнать некий идентификатор (если сортировка по дате, то и идентификатором будет "дата+реальный ID записи") последней выбранной записи (то есть последней записи на актуальной странице) и после этого отправлять этот идентификатор гет-запросом ко второй странице, которая, по сути, делает выборку с четким лимитом 30 записей от указанного нами идентификатора.

    Проблема будет в том, что по сути для добавлении в базу очередной записи все "постраничные" ссылки будут изменять адреса, то есть Гугль будет теряться. А вот пользователю по большей мере похуй. И даже отчасти хорошо - его ссылка всегда будет вести именно на тот список записей, который он видел и неделю назад. А в случае с большинством примеров из стандартной пагинации список записей на конкретном номере страницы со временем постоянно меняется.
  • vasa_c

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

    Spritz 24 сентября 2011 г. 14:16, спустя 28 секунд

    Как вариант - продублировать таблицу вверх ногами

    Сортировку может просто в другую сторону делать?

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