Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
27.09.2003, 01:41
|
|||
---|---|---|---|
|
|||
Вероятное, но не очевидное |
|||
#18+
Hi! Возникла необходимость получить из базы последнию запись, но так что бы это было как можно быстрее и менее затратно относительно пересылки по сети. Заранее благодарен. P.S. Считайте, что: 1) База очень большая; 2) Сеть не очень быстрая; 3) Клиент ограничен в ресурсах, особенно памяти ... |
|||
:
Нравится:
Не нравится:
|
|||
|
27.09.2003, 14:48
|
|||
---|---|---|---|
Вероятное, но не очевидное |
|||
#18+
во-первых не из базы а из таблицы (или все же из базы ?) Во-вторых в таблице нет понятия первая или последняя запись. Нужен критерии сортировки (поле или группа полей по которому сортировать будем). В общем случае SELECT * FROM tab ORDER BY field DESC LIMIT 0,1 по field нужен индекс. Насколько мне известно mysql до какой-то версии не использует индекс при сортировке если там DESC используется. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
27.09.2003, 17:48
|
|||
---|---|---|---|
|
|||
Вероятное, но не очевидное |
|||
#18+
Hi! >во-первых не из базы а из таблицы Да ошибся :) >Во-вторых в таблице нет понятия первая или последняя запись. Нужен >критерии сортировки (поле или группа полей по которому сортировать будем). Ну как там в таблице я спорить не буду (не давно только базами занялся), но я имел в виду последнию запись которую добавили в базу до запроса, самым простым из возможных способов INSERT INTO table VALUES(.....); >В общем случае >SELECT * FROM tab ORDER BY field DESC LIMIT 0,1 Опробывал на первый взгляд все работает как надо :)) Большое спасибо! Наверное седует указать для чего это необходимо. Делаю я небольшую, в своих франкенштейновских интересах, :) систему автоматического управления хим. установкой, и входе работы встал очевидный вопрос об хранении результатов в легко доступной форме (для полседующей обработки). Ну а так как MySQL дает возможность передовать данный через сеть, грех было не воспользоваться и не сделать утилиту удаленного мониторинга. Сложности возникли т.к. пользовался для получения данных SELECT * FROM tab, а затем с помошью операторов MySQL API перемещался в самы конец полученного множества, что конечно не самый лучший способ. Так, что если есть еще пара советов по оптимизации с удовольствием приму к сведенью :) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
29.09.2003, 09:57
|
|||
---|---|---|---|
Вероятное, но не очевидное |
|||
#18+
Все тебе правильно ответили и лучше не придумаешь. А что касается последней добавленой записи в принципе, то ставь timestamp на каждую запись, а дальше так же. Сортируешь по этому полю и выбираешь одну запись! ... |
|||
:
Нравится:
Не нравится:
|
|||
|
10.10.2003, 02:56
|
|||
---|---|---|---|
Вероятное, но не очевидное |
|||
#18+
Макс М. > не прав. Может быть у него индекс автоинкриментарный!!! Опа. Вот тебе и упорядоченые данные. Сами собой. Данные не упорядочены только не по отношению к автоинкрименту. Можно применить LAST_INSERT_ID() Или MAX по автоинкрименту выбрать. Вообще - захиди ко мне на форум. http://forum.webcommand.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=47&tablet=1&tid=1855728]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
69ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 177ms |
0 / 0 |