
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
24.03.2008, 13:35
|
|||
|---|---|---|---|
|
|||
Забись в базу с проверкой на дубль |
|||
|
#18+
Есть база со строками VARCHAR очень не маленькая. Нужно при записи новой проверять на точное соответствие - если строка есть то не записывать, если нет то записывать. Пока в голове такие варианты крутятся: 1. WHERE char = '"+char+"' 2. Сделать уникальный индекс и проверять есть ли ошибка при записи, если нет, то писать Как это лучше сделать, может другие варианты - главное скорость.... ps. Скрипт на Python ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
24.03.2008, 13:36
|
|||
|---|---|---|---|
|
|||
Забись в базу с проверкой на дубль |
|||
|
#18+
чуть не забыл база Mysql5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
24.03.2008, 16:50
|
|||
|---|---|---|---|
Забись в базу с проверкой на дубль |
|||
|
#18+
Есть универсальный способ работающий почти во всех базах: Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
24.03.2008, 16:54
|
|||
|---|---|---|---|
Забись в базу с проверкой на дубль |
|||
|
#18+
Хранить еще хэш строки, например. И по нему сравнивать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
24.03.2008, 16:56
|
|||
|---|---|---|---|
|
|||
Забись в базу с проверкой на дубль |
|||
|
#18+
Привет, Нахлобуч! Ты пишешь: НахлобучН> Хранить еще хэш строки, например. И по нему сравнивать.хэш не гарантирует уникальность. -- With best regards, Мимопроходящий. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
24.03.2008, 17:02
|
|||
|---|---|---|---|
|
|||
Забись в базу с проверкой на дубль |
|||
|
#18+
авторА во многих современных А что значит многие современные? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
24.03.2008, 17:02
|
|||
|---|---|---|---|
|
|||
Забись в базу с проверкой на дубль |
|||
|
#18+
Думаю, так: Sergey9991 2. Сделать уникальный индекс и проверять есть ли ошибка при записи, если нет, то писать В любом случае понадобится индекс для быстрой проверки наличия строки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
24.03.2008, 17:04
|
|||
|---|---|---|---|
|
|||
Забись в базу с проверкой на дубль |
|||
|
#18+
авторinsert into sometable(f1, f2) select :f1, :f2 where not exists(select * from sometable where f1=:f1 and f2=:f2) Непонял, сначала записываем, потом выбираем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
24.03.2008, 17:04
|
|||
|---|---|---|---|
Забись в базу с проверкой на дубль |
|||
|
#18+
Мимопроходящийхэш не гарантирует уникальность. Раз в 2^30 обновлений можно и строки посравнивать. Главное, чтоб хэш-функция была устойчивой к коллизиям. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
24.03.2008, 17:07
|
|||
|---|---|---|---|
|
|||
Забись в базу с проверкой на дубль |
|||
|
#18+
Привет, Нахлобуч! Ты пишешь: НахлобучГлавное, чтоб хэш-функция была устойчивой к коллизиям.переведи -- With best regards, Мимопроходящий. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
24.03.2008, 17:24
|
|||
|---|---|---|---|
Забись в базу с проверкой на дубль |
|||
|
#18+
Мимопроходящийпереведи Чтоб тяжело было отыскать две строки с одинаковым результирующим хэш-значением. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
24.03.2008, 17:27
|
|||
|---|---|---|---|
|
|||
Забись в базу с проверкой на дубль |
|||
|
#18+
Привет, Нахлобуч! Ты пишешь: НахлобучН> Чтоб тяжело было отыскать две строки с Н> одинаковым результирующим хэш-значением.их не нужно искать, они сами найдутся, в самый неподходящий момент. -- With best regards, Мимопроходящий. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
24.03.2008, 17:30
|
|||
|---|---|---|---|
Забись в базу с проверкой на дубль |
|||
|
#18+
Мимопроходящийих не нужно искать, они сами найдутся, в самый неподходящий момент. Есть у меня мысль, что те большие VARCHAR-строки различаются не очень сильно (относительно). Из-за лавинного эффекта хэши все же будут вполне себе различными, а в случае коллизии можно и посимвольно сравнить с теми двумя-тремя строками с одинаковыми хэш-значениями (если такие вообще будут). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
24.03.2008, 17:46
|
|||
|---|---|---|---|
Забись в базу с проверкой на дубль |
|||
|
#18+
Sergey9991 авторinsert into sometable(f1, f2) select :f1, :f2 where not exists(select * from sometable where f1=:f1 and f2=:f2) Непонял, сначала записываем, потом выбираем?Читай учебник по SQL: http://www.sql.ru/docs/sql/u_sql/ch15.shtml#15.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=16&mobile=1&tid=1345423]: |
0ms |
get settings: |
6ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
170ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 207ms |
| total: | 456ms |

| 0 / 0 |
