Спасибо и вам!
Работа с БД
-
Ребят, подскажите пожалуйста, пытаюсь реализовать блеклист с помощью базы данных, в неё кладу юзернеймы. Мне надо проверять наличие юзернейма в базе, для этого я выгружаю их с базы с помощью действия "получить записи по критерию", но они выгружаются с каким то уникальным идентификатором, можно ли как то получать просто юзернеймы?
Выглядит вот так:
"Nickname:5e3d94e5b014c590290b794f5"
"Nickname2:5e56d794566ff454b1ccbb63d"
А мне для того что бы потом проверять содержание в базе нужны просто Nickname, Nickname2 и тд.
Или может есть какой то другой способ проверить наличие строки в БД? И есть ли ограничение в 10 тыс строчек как с ресурсами? -
@Encoder95, это id записи в базе, убрать легко с помощью "Парсить строку"
-
@Encoder95, проверять на наличие лучше с помощью действия "Количество Записей" с нужными фильтрами
-
@Encoder95, вот об этом я не знаю
-
@Encoder95 said in Работа с БД:
Можете ещё подсказать, если у меня будет в базе данных больше 10 тыс строк, это действие будет проверять наличие по всей базе данных?
по всей. А вообще проще mysql подключить. Удобнее
-
После того как подключил к скрипту Базу данных, он начал сильно залагивать (в БД около 1 млн строк), когда же загружаю с файла в список и проверяю в нём на наличие, скрипт работает нормально. Вот хотел спросить у знающих людей, неужели работа с БД всё таки сильнее нагружает и лучше использовать файлы если оперативная память позволяет?
-
@Encoder95 Дело в том, что в БАС мало методов для работы с БД и из-за этого не всегда возможно сделать оптимальный запрос. А учитывая, что запросы к БД в БАС синхронные, то если у вас циклами несколько потоков пытаются проверять записи в БД, то это заблокирует работу БАС. Я работают в таких случая через nodejs, например для вашего случая можно было бы получать "пачку" юзернеймов и сразу отдавать ее в БД на проверку. Только вот для новичка это будет сложновато ( В вашем случае, если это возможно, можно сделать отдельный поток, который будет получать юзернеймы, проверять в БД и новые кидать в ресурс из которого другие потоки будут брать никнеймы.
-
@UserTrue ну тот скрипт на котором я проверял однопоточный. Он парсит при помощи xpath пачку юзернеймов, а потом из списка достаёт их по одному и проверяет на наличие в БД (действием "количество записей"), если есть юзернейм, возвращается назад и берёт след, если нет выполняет действия. А я могу каким то образом отсеять сразу часть списка которая уже есть в БД, а не проверять по одному? уменьшит ли это нагрузку?
-
@Encoder95 said in Работа с БД:
А я могу каким то образом отсеять сразу часть списка которая уже есть в БД, а не проверять по одному? уменьшит ли это нагрузку?
Это, то о чем я говорил. Это возможно только, если через nodejs подключаться к БД, там можно сразу весь список дать на проверку, займет долю секунду. В БАС к сожалению из коробки этого способа нет
-
@Encoder95 Вот тут запостил https://community.bablosoft.com/post/62783 тк периодически возникает такой вопрос у страждущих, не уверен, что вас этот обрадует )
Другой мой вариант где-то плавает на форуме, но этот лучше, тк кэширует подключение.