Работа с БД



  • Ребят, подскажите пожалуйста, пытаюсь реализовать блеклист с помощью базы данных, в неё кладу юзернеймы. Мне надо проверять наличие юзернейма в базе, для этого я выгружаю их с базы с помощью действия "получить записи по критерию", но они выгружаются с каким то уникальным идентификатором, можно ли как то получать просто юзернеймы?
    Выглядит вот так:
    "Nickname:5e3d94e5b014c590290b794f5"
    "Nickname2:5e56d794566ff454b1ccbb63d"
    А мне для того что бы потом проверять содержание в базе нужны просто Nickname, Nickname2 и тд.
    Или может есть какой то другой способ проверить наличие строки в БД? И есть ли ограничение в 10 тыс строчек как с ресурсами?



  • @Encoder95, это id записи в базе, убрать легко с помощью "Парсить строку"



  • @Encoder95, проверять на наличие лучше с помощью действия "Количество Записей" с нужными фильтрами



  • @GhostZ спасибо за подсказку, действие "количество записей" сработало отлично.
    Можете ещё подсказать, если у меня будет в базе данных больше 10 тыс строк, это действие будет проверять наличие по всей базе данных?



  • @Encoder95, вот об этом я не знаю



  • @Encoder95 said in Работа с БД:

    Можете ещё подсказать, если у меня будет в базе данных больше 10 тыс строк, это действие будет проверять наличие по всей базе данных?

    по всей. А вообще проще mysql подключить. Удобнее



  • Спасибо за ответы. В mysql я пока не шарю)



  • После того как подключил к скрипту Базу данных, он начал сильно залагивать (в БД около 1 млн строк), когда же загружаю с файла в список и проверяю в нём на наличие, скрипт работает нормально. Вот хотел спросить у знающих людей, неужели работа с БД всё таки сильнее нагружает и лучше использовать файлы если оперативная память позволяет?



  • @Encoder95 Дело в том, что в БАС мало методов для работы с БД и из-за этого не всегда возможно сделать оптимальный запрос. А учитывая, что запросы к БД в БАС синхронные, то если у вас циклами несколько потоков пытаются проверять записи в БД, то это заблокирует работу БАС. Я работают в таких случая через nodejs, например для вашего случая можно было бы получать "пачку" юзернеймов и сразу отдавать ее в БД на проверку. Только вот для новичка это будет сложновато ( В вашем случае, если это возможно, можно сделать отдельный поток, который будет получать юзернеймы, проверять в БД и новые кидать в ресурс из которого другие потоки будут брать никнеймы.



  • @UserTrue ну тот скрипт на котором я проверял однопоточный. Он парсит при помощи xpath пачку юзернеймов, а потом из списка достаёт их по одному и проверяет на наличие в БД (действием "количество записей"), если есть юзернейм, возвращается назад и берёт след, если нет выполняет действия. А я могу каким то образом отсеять сразу часть списка которая уже есть в БД, а не проверять по одному? уменьшит ли это нагрузку?



  • @Encoder95 said in Работа с БД:

    А я могу каким то образом отсеять сразу часть списка которая уже есть в БД, а не проверять по одному? уменьшит ли это нагрузку?

    Это, то о чем я говорил. Это возможно только, если через nodejs подключаться к БД, там можно сразу весь список дать на проверку, займет долю секунду. В БАС к сожалению из коробки этого способа нет



  • @UserTrue у вас случайно нет какой то ссылки где я смогу подробнее про это почитать?



  • @Encoder95 Вот тут запостил https://community.bablosoft.com/post/62783 тк периодически возникает такой вопрос у страждущих, не уверен, что вас этот обрадует )

    Другой мой вариант где-то плавает на форуме, но этот лучше, тк кэширует подключение.



  • @UserTrue благодарю)


Log in to reply