![]() |
|
Модераторы: skyboy |
![]()
|
|
| ZloiKombat |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 19.2.2011 Репутация: нет Всего: нет |
Zloxa, Вставил строку запроса из вашего показа таблицы и о чудо, вывод вышел именно так как мне нужно, но радость моя была кратковременной, в выводе некоторые строки дублируются, не все а некоторые , почему не знаю, вывод получился такой
ID LOGIN TIME ---------- ----- ---------- 3 log2 100 2 log1 15 2 log1 15 5 log3 11 6 log4 8 |
|||
|
||||
| Данкинг |
|
||||||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 1 Всего: 130 |
Да, вот так лучше:
![]() Добавлено через 1 минуту и 32 секунды Тогда так:
-------------------- There's nothing left but silent epitaphs. |
||||||
|
|||||||
| Zloxa |
|
|||
|
Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 53 Всего: 161 |
Есть две мысли. Первая - маловероятная. Id - не уникален а значения log1 различаются русской буквой "o" или же какимнить завершающим пробелом Вторая - невероятная, что пара (login,time) - не уникальна(при этом id - тоже). Невероятно потому, что Вы утверждали обратное. Данкинг, так будет работать только если time уникален. Это сообщение отредактировал(а) Zloxa - 20.2.2011, 15:59 -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка |
|||
|
||||
| ZloiKombat |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 19.2.2011 Репутация: нет Всего: нет |
Последний пример не смог заставить работать.
Zloxa, time уникален, для значения login То есть связка login + time уникальна, а сам time имеет повторения для других значений login Вот все таки мне подсказали код, который работает четко так, как мне было нужно, вот он
Единственный минус генерация страницы повышена в среднем по сайту генерация ~0,05 а на странице с кодом 0,1 (индексы на поля login и time стоят) |
|||
|
||||
| Zloxa |
|
|||
|
Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 53 Всего: 161 |
вы не поверите, но он полностью эквивалентен тому, который, по вашим словам выдает вам дублирующиеся записи. Должен стоять на пару и индекс должен быть уникальным. И нужен этот индекс не для увеличения производительности, а для обеспечения гарантии уникальности пары (login,time). К сожалению данный тип запросов - не тот случай, когда построение нужного индекса сможет на порядки увеличить производительность. Использование индекса, быть может, позволит лишь слега сократить время вычисления группировки. Еще совсем немного спичек можно было бы сэкономить используя ранее рекомендвоанный мною "бабушкин метод". Однако проза жизни такова, что чем больше даннах подлежащих обработке этим запросом, тем дольше он будет выполняться. И с этим ничего не поделаешь. Единственный совет, какой я мог бы вам дать в данной ситуации - создать отдельную табличку, в которой сохранять преаггрегацию, которую выполнять в триггерах при модификации, добавлении, удалении данных из вашей таблички. Однако в реализации подобного механизма есть пара тонких моментов, которые следует учитывать и, которые, боюсь, вам будет весьма не просто реализовать. -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка |
|||
|
||||
| ZloiKombat |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 19.2.2011 Репутация: нет Всего: нет |
Zloxa, Вы правы на счет запроса. Тот запрос который я указал, тоже дублирует некоторые строки(((
На счет id вы не правы. Это примари с автоикрементом. На счет пары login+time,маловероятно что он не уникален. time записывается в формате юникс, если может пользователь сделать два обращения к странице в одну единицу времени то может и не уникальна связка. На счет индекса. Сделал связку login+time генерация страницы снизилась до 0.05 так что это действенно. По поводу уникальности связки индекса хорошая идея, щас сделаю индекс уникальным, возможно это и исключит дублирование строк |
|||
|
||||
| Zloxa |
|
|||
|
Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 53 Всего: 161 |
я лишь хотел обратить ваше внимание, что с разрастанием базы вы все равно получите тут проблему. Если ваша система на столько нагружена, что изменение времени отклика с 0,1 на 0,05 оказывается ощутимым, то такому запросу не место в такой системе. Это сообщение отредактировал(а) Zloxa - 20.2.2011, 21:23 -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Составление SQL-запросов | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |