Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / SQLite [игнор отключен] [закрыт для гостей] / REPLACE или INSERT/UPDATE? / 10 сообщений из 10, страница 1 из 1
24.12.2009, 16:10
    #36384908
LiYing
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
REPLACE или INSERT/UPDATE?
Стоит ли использовать REPLACE вместо проверки: есть запись - UPDATE, нет - INSERT? Дает ли выигрыш по скорости записи?
В общем, What are the advantage and disadvantage of REPLACE?
...
Рейтинг: 0 / 0
24.12.2009, 19:43
    #36385413
MBG
MBG
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
REPLACE или INSERT/UPDATE?
Странный вопрос. По скорости выигрыш, разумеется, есть - это легко проверить. Кроме прочего, база на запись блокируется на меньший интервал времени, что повышает конкурентность. Но именно REPLACE использовать не стоит, это мускульное расширение, лучше уж insert or replace, а еще лучше - соответствующий conflict resolution алгоритм, назначенный при создании таблицы. Так что определитесь, "вам шашечки или ехать", то бишь интересует именно синтаксис или функционал
...
Рейтинг: 0 / 0
25.12.2009, 08:15
    #36385807
LiYing
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
REPLACE или INSERT/UPDATE?
MBGПо скорости выигрыш, разумеется, есть - это легко проверить.
Мне не удалось проверить, все время разные результаты замера... Выигрыш чей: REPLACE выполняется быстрее?

MBGНо именно REPLACE использовать не стоит, это мускульное расширение, лучше уж insert or replace,
Не понял, в чем разница между ними? Из хэлпа: "The REPLACE command is an alias for the "INSERT OR REPLACE" variant of the INSERT command. This alias is provided for compatibility other SQL database engines. "
...
Рейтинг: 0 / 0
25.12.2009, 08:51
    #36385836
Dmitry Arefiev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
REPLACE или INSERT/UPDATE?
Вообще лучше начать с плана исполнения запроса. При чем это стоит делать
независимо от СУБД, когда есть вопросы про производительность запроса.
В случае SQLite это будет наидетальнейший план с точностью до чиха :)
...
Рейтинг: 0 / 0
25.12.2009, 10:05
    #36385935
MBG
MBG
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
REPLACE или INSERT/UPDATE?
Dmitry ArefievВообще лучше начать с плана исполнения запроса. При чем это стоит делать
независимо от СУБД, когда есть вопросы про производительность запроса.
В случае SQLite это будет наидетальнейший план с точностью до чиха :)

Еще есть и код приложения, если автор на стороне приложения делает проверку - подготавливает и выполняет _два_ запроса - на поиск, перезапись существующей или вставку новой записи. И здесь оверхед весьма поболее выходит, чем если смотреть только разницу эскулайтовских инструкций.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
07.04.2011, 20:27
    #37205582
hardir
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
REPLACE или INSERT/UPDATE?
Подскажите пожалуйста, как обновить строку в таблице, а если таковой нет, то вставить (добавить).
INSERT OR REPLACE не работает, записи всёравно добавляются.
К примеру имеется табличка с целочисленными полями:
|id |data |
Нужно вставить запись с id=x, а если такова имеется, то обновить её, изменив data. Надо чтоб в один запрос....
...
Рейтинг: 0 / 0
07.04.2011, 20:29
    #37205585
hardir
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
REPLACE или INSERT/UPDATE?
Да ... и на http://www.sqlite.org/lang_insert.html нет корректой информации по этому поводу. Там INSERT OR REPLACE даде не рассматривают. Так, упоминают, что это есть, а как ОНО работает и примерчика нету :(
...
Рейтинг: 0 / 0
08.04.2011, 01:28
    #37205849
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
REPLACE или INSERT/UPDATE?
hardirПодскажите пожалуйста, как обновить строку в таблице, а если таковой нет, то вставить (добавить).
INSERT OR REPLACE не работает, записи всёравно добавляются.
К примеру имеется табличка с целочисленными полями:
|id |data |
Нужно вставить запись с id=x, а если такова имеется, то обновить её, изменив data. Надо чтоб в один запрос....Первичный ключ задай и все будет работать.
...
Рейтинг: 0 / 0
09.04.2011, 09:03
    #37207756
hardir
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
REPLACE или INSERT/UPDATE?
Первичный ключ задай и все будет работать.
В SQLite Database Browser нет такого параметра. Там тока индексы, а как с ними работать я не в курсе.
Потому, пока у меня реализовано в три запроса. Первый проверяет запись на существование, а второй и третий выполняются в соответствии с условием, есть или нету записи.
...
Рейтинг: 0 / 0
09.04.2011, 11:09
    #37207810
Dmitry Arefiev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
REPLACE или INSERT/UPDATE?
1) Читай http://www.sqlite.org/lang_createtable.html на тему PRIMARY KEY.
2) Выкинь SQLite Database Browser, если он не позволяет определять PK
или ищи лучше, где и как он это позволяет делать. А вообще это можно
и ручками проделать.
...
Рейтинг: 0 / 0
Форумы / SQLite [игнор отключен] [закрыт для гостей] / REPLACE или INSERT/UPDATE? / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]