15.03.2007, 11:06 | #1 |
Участник
|
День добрый. У сам еще лаймерок в навижене, поэтому вопрос мой скорее всего тупой.
Пусть есть таблица у которой есть поле дата. ЭТО ПОЛЕ НЕ ВХОДИТ НИ В ОДИН КЛЮЧ ТАБЛИЦЫ. Мне нужно найти запись с максимальной датой. Если бы это поле было ключевым, то можно все бы сделать просто - поставитьэтот ключ, а затем find('+'). А как быть тут? Очевидно что можно просто в лоб пробежаться по всем полям и найти максимальное. Это давольно просто. Просто меня интересует, нельзя ли это еще более просто сделать. |
|
15.03.2007, 11:59 | #2 |
Участник
|
Если самому не добавить ключ (что нужно делать с пониманием дела, не всегда это "лучше"), то только перебором.
Да, кстати, не забывайте, что записей с максимальной датой может быть несколько. |
|
15.03.2007, 14:41 | #3 |
Участник
|
Ясно. То, что их много это не страшно. Мне главно найти эту максимльную дату. А аотом я отфильтрую по ней, и получу все записи с этой датой. Собственно я уже все сделал перебором. Спасибо.
|
|
15.03.2007, 15:26 | #4 |
Участник
|
Ну хорошо .. У тебя в таблице 10 записей и перебрать их не долго .. А если тебе в книге надо будет найти максимальное значение? Тоже будешь перебирать? Задача решается созданием нужного ключа (можно только нави, без скуля) и написанием одной строки кода.
|
|
15.03.2007, 18:38 | #5 |
Участник
|
Помоему, все зависит от того как часто нужно будет выполнять поставленную задачу.
Если редко, то лучше перебором. Так как добавлене ключей замедляет работу базы в целом. Ну,а если постоянно нужно осуществлять поиск - то, необходимо добавлять. |
|
16.03.2007, 10:14 | #6 |
Участник
|
Не думаю что будут прям какие-то замедления, если снять MaintainSQLIndex
|
|
16.03.2007, 12:09 | #7 |
Участник
|
кстати, офтоп..почитал тут в хелпе про MaintainSQLIndex и MaintainSIFTIndex.. Если я все правильно понял, то:
1. MaintainSQLIndex ставим в No, если ключ используем редко, тогда и сортировать сможем и модификации в таблице не будут медленнее; 2. MaintainSIFTIndex ставим в No, если в каком-то случае очень удобно использовать FlowField-поле, но используется оно редко или на малых наборах данных При этом и рыбку съедим и косточкой не подавимся. Коллеги, поправьте меня если что не так. Также было бы интересно выслушать ваши дополнения и, может быть, интересные случаи, где вы отключали эти феньки |
|
16.03.2007, 12:57 | #8 |
Участник
|
Цитата:
Если делать выборки с ограничением с использованием такого ключа - получится все равно что без ключа - т.е. медленно. Кстати, на мибузе интересную процедурку выкинули - чистка sift-индексов. http://www.mibuso.com/dlinfo.asp?FileID=812 |
|
16.03.2007, 13:21 | #9 |
Участник
|
Цитата:
Цитата:
If an index exists, sorting by the fields matching the index will be faster, but modifications to the table will be slower.
|
|
16.03.2007, 13:50 | #10 |
Участник
|
Цитата:
2. Да, именно так. Кстати, при использовании сотрировки по такому псевдо-ключу в экранных формах есть подводный камень. Смышленый юзер обязательно воспользуется фильтрацией посредством соответствующих кнопок. А вот для той задачи, которая в данной теме рассматривается - с моей точки зрения решение идеальное. |
|