Моё меню Общее меню Сообщество Правила форума Все прочитано
Вернуться   uForum.uz > ИКТ и телеком > Разное/IT
Сообщения за день Поиск
Знаете ли Вы, что ...
...до того как открыть новую тему, стоит использовать поиск: такая тема уже может существовать.
<< Предыдущий совет - Случайный совет - Следующий совет >>

Разное/IT Всё, что не попадает в другие разделы форума и подфорумов представленных здесь организаций. Не IT темы обсуждаются в "Беседке"


Ответить

 
Опции темы Опции просмотра
Старый 13.10.2013 19:20   #11  
Заблокирован(а)
Аватар для JackDaniels
Оффлайн
Сообщений: 18,519
+ 10,956  12,586/6,453
– 307  539/385

Vatican City State
Цитата:
Сообщение от Denis Shlyapnikov Посмотреть сообщение
Примерно так можно работать с большим объемом данных, где нужно делать выборки:
create temporary table`temp` select * `db` .... , дальше уже обращаться ко временной таблице select .. from `temp`
Реально не понимаю, как это поможет при сортировке 1М полей с данными.
Можно подробнее?
Ответить 
Старый 13.10.2013 19:22   #12  
Real ID Group
Аватар для Denis Shlyapnikov
Оффлайн
FreeLance
Python/PHP программист
Сообщений: 1,054
+ 886  435/275
– 35  6/6

Russian FederationОтправить сообщение для Denis Shlyapnikov с помощью Skype™Facebook
Скорость Руслан, Скорость. Это альтернатива вашему временному решению.
После чего можно смело писать
select * fromt temp order by rand()
__________________
http://hit-season.net/ - сериалы On-Line!
Ответить 
Старый 13.10.2013 19:34   #13  
Заблокирован(а)
Аватар для JackDaniels
Оффлайн
Сообщений: 18,519
+ 10,956  12,586/6,453
– 307  539/385

Vatican City State
Цитата:
Сообщение от Denis Shlyapnikov Посмотреть сообщение
Скорость Руслан, Скорость. Это альтернатива вашему временному решению.
После чего можно смело писать
select * fromt temp order by rand()
Так сортировка будет так же в памяти, что и вызывает основные тормоза при by rand().
Но за идею спасибо, нужно будет апробировать на практике.
Ответить 
Старый 13.10.2013 19:39   #14  
Real ID Group Ultimate 2008
Аватар для Alisher Umarov
Оффлайн
AKA:Jazz
Сообщений: 4,528
+ 1,247  2,402/1,186
– 5  244/97

Uzbekistan
Мне понравился ответ с выборкой по номерам строк, которые не могут быть с дырами.

Предложение. Давайте примеры ближе к жизни. Нас люди (молодые патриоты) читают.
Для специфики есть гугл или хабр.
Ответить 
Реклама и уведомления
Старый 13.10.2013 19:43   #15  
Real ID Group
Аватар для Denis Shlyapnikov
Оффлайн
FreeLance
Python/PHP программист
Сообщений: 1,054
+ 886  435/275
– 35  6/6

Russian FederationОтправить сообщение для Denis Shlyapnikov с помощью Skype™Facebook
Перебор базы в памяти работает во много раз быстрее, попробуйте, возможно, вы и не заметите задержки при рандомной выборки
__________________
http://hit-season.net/ - сериалы On-Line!
Ответить 
Старый 13.10.2013 19:43   #16  
Real ID Group Ultimate 2008
Аватар для Alisher Umarov
Оффлайн
AKA:Jazz
Сообщений: 4,528
+ 1,247  2,402/1,186
– 5  244/97

Uzbekistan
Цитата:
Сообщение от Denis Shlyapnikov Посмотреть сообщение
Примерно так можно работать с большим объемом данных, где нужно делать выборки:
create temporary table`temp` select * `db` .... , дальше уже обращаться ко временной таблице select .. from `temp`
На сколько я въехал для этого ещё базу подготовить стоит. Памяти для temp может не хватить.
Ответить 
"+" от:
Старый 13.10.2013 19:46   #17  
Заблокирован(а)
Аватар для JackDaniels
Оффлайн
Сообщений: 18,519
+ 10,956  12,586/6,453
– 307  539/385

Vatican City State
Цитата:
Сообщение от Denis Shlyapnikov Посмотреть сообщение
Перебор базы в памяти работает во много раз быстрее, попробуйте, возможно, вы и не заметите задержки при рандомной выборки
Не все так просто: http://habrahabr.ru/post/54176/

Цитата:
В процессе выполнения этого запроса MySQL записывает во временную таблицу все (!!!) строки исходной таблицы, с одним новым полем, в которое записываются результаты функции RAND () — т.е. набор произвольных значений. Затем эта временная таблица сортируется filesort по добавленному полю с произвольными значениями и далее выбираются первые 10 записей. Полный ппц. А теперь представтье что будет если в исходной таблице 10 000 записей. А что если 1 000 000? А что если эту выборку надо делать раз десять в секунду. Да тут любой супер-пупер сервер надолго уйдет в раздумья.
Ответить 
Старый 13.10.2013 19:47   #18  
Заблокирован(а)
Аватар для JackDaniels
Оффлайн
Сообщений: 18,519
+ 10,956  12,586/6,453
– 307  539/385

Vatican City State
Цитата:
Сообщение от Alisher Umarov Посмотреть сообщение
Давайте примеры ближе к жизни.
Задача, кстати, из практики.
Ответить 
Старый 13.10.2013 19:51   #19  
Real ID Group
Аватар для Denis Shlyapnikov
Оффлайн
FreeLance
Python/PHP программист
Сообщений: 1,054
+ 886  435/275
– 35  6/6

Russian FederationОтправить сообщение для Denis Shlyapnikov с помощью Skype™Facebook
ну, это да, к ~ для 1млн записей (таблица, в которой есть поле `text`) требуется 1GB RAM.
Мой способ это скорее исключение, чем правило для использования. Он будет оправдан, если с этой таблицой будут происходит несколько манипуляций, но и для order by random() вполне подойдет, мне кажется.
__________________
http://hit-season.net/ - сериалы On-Line!
Ответить 
Старый 13.10.2013 19:53   #20  
Real ID Group
Аватар для Denis Shlyapnikov
Оффлайн
FreeLance
Python/PHP программист
Сообщений: 1,054
+ 886  435/275
– 35  6/6

Russian FederationОтправить сообщение для Denis Shlyapnikov с помощью Skype™Facebook
Руслан, у меня как раз есть подопытная таблица от форума gamertalk.uz (около 0.5М постов)
Завтра потестю и ваш и свой вариант. Результат скинут сюды.
__________________
http://hit-season.net/ - сериалы On-Line!
Ответить 
"+" от:
Ответить




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. Перевод: zCarot
Advertisement System V2.5 By Branden
OOO «Единый интегратор UZINFOCOM»


Новые 24 часа Кто на форуме Новички Поиск Кабинет Все прочитано Вверх