|
REPLACE или INSERT/UPDATE?
|
|||
---|---|---|---|
#18+
Стоит ли использовать REPLACE вместо проверки: есть запись - UPDATE, нет - INSERT? Дает ли выигрыш по скорости записи? В общем, What are the advantage and disadvantage of REPLACE? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2009, 16:10 |
|
REPLACE или INSERT/UPDATE?
|
|||
---|---|---|---|
#18+
Странный вопрос. По скорости выигрыш, разумеется, есть - это легко проверить. Кроме прочего, база на запись блокируется на меньший интервал времени, что повышает конкурентность. Но именно REPLACE использовать не стоит, это мускульное расширение, лучше уж insert or replace, а еще лучше - соответствующий conflict resolution алгоритм, назначенный при создании таблицы. Так что определитесь, "вам шашечки или ехать", то бишь интересует именно синтаксис или функционал ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2009, 19:43 |
|
REPLACE или INSERT/UPDATE?
|
|||
---|---|---|---|
#18+
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. " ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2009, 08:15 |
|
REPLACE или INSERT/UPDATE?
|
|||
---|---|---|---|
#18+
Вообще лучше начать с плана исполнения запроса. При чем это стоит делать независимо от СУБД, когда есть вопросы про производительность запроса. В случае SQLite это будет наидетальнейший план с точностью до чиха :) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2009, 08:51 |
|
REPLACE или INSERT/UPDATE?
|
|||
---|---|---|---|
#18+
Dmitry ArefievВообще лучше начать с плана исполнения запроса. При чем это стоит делать независимо от СУБД, когда есть вопросы про производительность запроса. В случае SQLite это будет наидетальнейший план с точностью до чиха :) Еще есть и код приложения, если автор на стороне приложения делает проверку - подготавливает и выполняет _два_ запроса - на поиск, перезапись существующей или вставку новой записи. И здесь оверхед весьма поболее выходит, чем если смотреть только разницу эскулайтовских инструкций. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2009, 10:05 |
|
REPLACE или INSERT/UPDATE?
|
|||
---|---|---|---|
#18+
Подскажите пожалуйста, как обновить строку в таблице, а если таковой нет, то вставить (добавить). INSERT OR REPLACE не работает, записи всёравно добавляются. К примеру имеется табличка с целочисленными полями: |id |data | Нужно вставить запись с id=x, а если такова имеется, то обновить её, изменив data. Надо чтоб в один запрос.... ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2011, 20:27 |
|
REPLACE или INSERT/UPDATE?
|
|||
---|---|---|---|
#18+
Да ... и на http://www.sqlite.org/lang_insert.html нет корректой информации по этому поводу. Там INSERT OR REPLACE даде не рассматривают. Так, упоминают, что это есть, а как ОНО работает и примерчика нету :( ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2011, 20:29 |
|
REPLACE или INSERT/UPDATE?
|
|||
---|---|---|---|
#18+
hardirПодскажите пожалуйста, как обновить строку в таблице, а если таковой нет, то вставить (добавить). INSERT OR REPLACE не работает, записи всёравно добавляются. К примеру имеется табличка с целочисленными полями: |id |data | Нужно вставить запись с id=x, а если такова имеется, то обновить её, изменив data. Надо чтоб в один запрос....Первичный ключ задай и все будет работать. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2011, 01:28 |
|
REPLACE или INSERT/UPDATE?
|
|||
---|---|---|---|
#18+
Первичный ключ задай и все будет работать. В SQLite Database Browser нет такого параметра. Там тока индексы, а как с ними работать я не в курсе. Потому, пока у меня реализовано в три запроса. Первый проверяет запись на существование, а второй и третий выполняются в соответствии с условием, есть или нету записи. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2011, 09:03 |
|
REPLACE или INSERT/UPDATE?
|
|||
---|---|---|---|
#18+
1) Читай http://www.sqlite.org/lang_createtable.html на тему PRIMARY KEY. 2) Выкинь SQLite Database Browser, если он не позволяет определять PK или ищи лучше, где и как он это позволяет делать. А вообще это можно и ручками проделать. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2011, 11:09 |
|
|
start [/forum/topic.php?fid=54&tid=2009200]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
72ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
2ms |
others: | 12ms |
total: | 174ms |
0 / 0 |