Этого треда уже нет.
Это копия, сохраненная 26 октября 2022 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Универсальный баз данных тред v1.5 /sql/ # OP 2336742 В конец треда | Веб
Прошлый >>2227895 (OP)

Ссылки:
- https://www.w3schools.com/sql/
- https://www.postgresqltutorial.com/
- https://www.oracletutorial.com/
- https://learnxinyminutes.com/docs/sql/
- https://metanit.com/sql/
- MongoDB: https://metanit.com/nosql/mongodb/

Задачи:
- https://www.sql-ex.ru
- http://sql-tutorial.ru/
- https://www.codewars.com/?language=sql

Видосики:
- Плейлисты по разным СУБД: https://www.youtube.com/c/SQLDeveloperBI/playlists
- https://www.youtube.com/watch?v=EHvzvwAv7RU&list=PLY7PmJJFH5nT-lbFKxfbp3rw5BBuq5Azo

Литература:
- Томас Кайт. Oracle для профессионалов
- https://postgrespro.ru/education/books/dbtech
- Алан Бьюли. Изучаем SQL. - про MySQL
- К. Дж. Дейт. Введение в системы баз данных

ETL, OLAP, DWH и другие умные слова:
- https://www.youtube.com/watch?v=WPZuzDJXs-Q&list=PLhhjwMYxzolhP29LSPPwORVQxJX5OjYix[РАСКРЫТЬ][РАСКРЫТЬ][РАСКРЫТЬ]
- OLAP DAX Power BI: https://www.youtube.com/playlist?list=PLhhjwMYxzolhXuySjLR2_n-xb6VvWnjju

Прочее:
- https://dbdb.io/
- https://db.cs.cmu.edu/
- https://www.youtube.com/channel/UCHnBsf2rH-K7pn09rb3qvkA/playlists
- Сравнение диалектов SQL: http://troels.arvin.dk/db/rdbms/
- Как БД работают изнутри: https://habr.com/ru/company/mailru/blog/266811/

FAQ:
Q: Нужно ли знать английский?
A: Да.

Q: Что лучше, SQL или NoSQL?
A: По задачам.

Q: Вопросы с лабами и задачками
A: Задавай, ответят, но могут и обоссать.

Здесь мы:
- Негодуем, почему шапка - говно, и предлагаем коллективному ОПу идеи, как её улучшить.
- Разбираемся, почему PostgreSQL - не Oracle
- Пытаемся понять, зачем нужен Тырпрайс, если есть бесплатный опенсурс
- Обсуждаем, какие новые тенденции хранения данных появляются в современном цифровом обеществе
- Решаем всем тредом лабы для заплутавших студентов и задачки с sql-ex для тех, у кого завтра ПЕРВОЕ собеседование
- Анализируем, как работает поиск вконтакте
- И просто хорошо проводим время, обсирая чужой код, не раскрывая, как писать правильно.

Поехали!
2 2336813
Я покакал.
3 2337047
Если я для дев окружения хочу дропнуть все релейтед схемы и таблицы в БД, то достаточно каскадно дропнуть схемы? Или нужно заморачиваться удалением таблиц, а потом схем? Данные ценность не имеют.
4 2337054
define @op nvarchar

select @op = 'faggot'

select @op
5 2337919
Как теоретически мог бы работать то что называется модгет? Номер это же первичный ключ
И типа когда даёшь новую запись в базу данных, то оно же начиная с него будет работать, а постов до него уже не будет
6 2337926
>>337919
Способов много. Например, незадолго до гета впилить в код создания поста проверку, где проверять значение счётчика, и если следующее значение будет гетом, то инсертнуть модгет. Либо повесить аналогичный триггер на INSERT в таблицу постов.
7 2337934
>>337926

> Либо повесить аналогичный триггер на INSERT в таблицу постов.


Вроде же как в триггере нельзя делать insert в ту же таблицу на after insert которой он сам и дергается.
8 2338153
>>337919

>Номер это же первичный ключ


Если первичный ключ не написан как дефолтный генератор, то там вполне можно своё значение вставлять. Да и в генератор можно своё значение впихнуть, если сильно надо.
Трикса 9 2339566
1. Сети, подключенные к ISP, считаются внешними:
ISP forward
nano /etc/sysctl.conf
net.ipv4.ip_forward=1
sysctl -p
image

RTR-L Gitw
ip route 0.0.0.0 0.0.0.0 4.4.4.1

RTR-R gitw
ip route 0.0.0.0 0.0.0.0 5.5.5.1

2. Платформы контроля трафика, установленные на границах регионов, должны выполнять трансляцию трафика, идущего из соответствующих внутренних сетей во внешние сети стенда и в сеть Интернет.
RTR-L NAT
на внутр. интерфейсе - ip nat inside

на внешн. интерфейсе - ip nat outside

int gi 1
ip nat outside
!
int gi 2
ip nat inside
!
access-list 1 permit 192.168.100.0 0.0.0.255
ip nat inside source list 1 interface Gi1 overload

RTR-R NAT
int gi 1
ip nat outside
!
int gi 2
ip nat inside
!
access-list 1 permit 172.16.100.0 0.0.0.255
ip nat inside source list 1 interface Gi1 overload

3. Между платформами должен быть установлен защищенный туннель, позволяющий осуществлять связь между регионами с применением внутренних адресов.
RTR-L GRE
interface Tunne 1
ip address 172.16.1.1 255.255.255.0
tunnel mode gre ip
tunnel source 4.4.4.100
tunnel destination 5.5.5.100
exi
router eigrp 6500
network 192.168.100.0 0.0.0.255
network 172.16.1.0 0.0.0.255

RTR-R
interface Tunne 1
ip address 172.16.1.2 255.255.255.0
tunnel mode gre ip
tunnel source 5.5.5.100
tunnel destination 4.4.4.100
exi
router eigrp 6500
network 172.16.100.0 0.0.0.255
network 172.16.1.0 0.0.0.255

RTR-L
crypto isakmp policy 1
encr aes
authentication pre-share
hash sha256
group 14
!
crypto isakmp key TheSecretMustBeAtLeast13bytes address 5.5.5.100
crypto isakmp nat keepalive 5
!
crypto ipsec transform-set TSET esp-aes 256 esp-sha256-hmac
mode tunnel
!
crypto ipsec profile VTI
set transform-set TSET
interface Tunnel1
tunnel mode ipsec ipv4
tunnel protection ipsec profile VTI

RTR-R
conf t

crypto isakmp policy 1
encr aes
authentication pre-share
hash sha256
group 14
!
crypto isakmp key TheSecretMustBeAtLeast13bytes address 4.4.4.100
crypto isakmp nat keepalive 5
!
crypto ipsec transform-set TSET esp-aes 256 esp-sha256-hmac
mode tunnel
!
crypto ipsec profile VTI
set transform-set TSET
interface Tunnel1
tunnel mode ipsec ipv4
tunnel protection ipsec profile VTI

4. Платформа управления трафиком RTR-L выполняет контроль входящего трафика согласно следующим правилам:
RTR-L ACL
ip access-list extended Lnew
permit tcp any any established
permit udp host 4.4.4.100 eq 53 any
permit udp host 5.5.5.1 eq 123 any
permit tcp any host 4.4.4.100 eq 80
permit tcp any host 4.4.4.100 eq 443
permit tcp any host 4.4.4.100 eq 2222
permit udp host 5.5.5.100 host 4.4.4.100 eq 500
permit esp any any
permit icmp any any
int gi 1
ip access-group Lnew in

5. Платформа управления трафиком RTR-R выполняет контроль входящего трафика согласно следующим правилам:
RTR-R ACL
ip access-list extended Rnew
permit tcp any any established
permit tcp any host 5.5.5.100 eq 80
permit tcp any host 5.5.5.100 eq 443
permit tcp any host 5.5.5.100 eq 2244
permit udp host 4.4.4.100 host 5.5.5.100 eq 500
permit esp any any
permit icmp any any
int gi 1
ip access-group Rnew in

6. Обеспечьте настройку служб SSH региона Left:
RTR-L SSH
ip nat inside source static tcp 192.168.100.100 22 4.4.4.100 2222
RTR-R SSH
ip nat inside source static tcp 172.16.100.100 22 5.5.5.100 2244
SSH WEB-L
apt-cdrom add
apt install -y openssh-server ssh
systemctl start sshd
systemctl enable ssh
SSH WEB-R
apt-cdrom add
apt install -y openssh-server ssh
systemctl start sshd
systemctl enable ssh
Трикса 9 2339566
1. Сети, подключенные к ISP, считаются внешними:
ISP forward
nano /etc/sysctl.conf
net.ipv4.ip_forward=1
sysctl -p
image

RTR-L Gitw
ip route 0.0.0.0 0.0.0.0 4.4.4.1

RTR-R gitw
ip route 0.0.0.0 0.0.0.0 5.5.5.1

2. Платформы контроля трафика, установленные на границах регионов, должны выполнять трансляцию трафика, идущего из соответствующих внутренних сетей во внешние сети стенда и в сеть Интернет.
RTR-L NAT
на внутр. интерфейсе - ip nat inside

на внешн. интерфейсе - ip nat outside

int gi 1
ip nat outside
!
int gi 2
ip nat inside
!
access-list 1 permit 192.168.100.0 0.0.0.255
ip nat inside source list 1 interface Gi1 overload

RTR-R NAT
int gi 1
ip nat outside
!
int gi 2
ip nat inside
!
access-list 1 permit 172.16.100.0 0.0.0.255
ip nat inside source list 1 interface Gi1 overload

3. Между платформами должен быть установлен защищенный туннель, позволяющий осуществлять связь между регионами с применением внутренних адресов.
RTR-L GRE
interface Tunne 1
ip address 172.16.1.1 255.255.255.0
tunnel mode gre ip
tunnel source 4.4.4.100
tunnel destination 5.5.5.100
exi
router eigrp 6500
network 192.168.100.0 0.0.0.255
network 172.16.1.0 0.0.0.255

RTR-R
interface Tunne 1
ip address 172.16.1.2 255.255.255.0
tunnel mode gre ip
tunnel source 5.5.5.100
tunnel destination 4.4.4.100
exi
router eigrp 6500
network 172.16.100.0 0.0.0.255
network 172.16.1.0 0.0.0.255

RTR-L
crypto isakmp policy 1
encr aes
authentication pre-share
hash sha256
group 14
!
crypto isakmp key TheSecretMustBeAtLeast13bytes address 5.5.5.100
crypto isakmp nat keepalive 5
!
crypto ipsec transform-set TSET esp-aes 256 esp-sha256-hmac
mode tunnel
!
crypto ipsec profile VTI
set transform-set TSET
interface Tunnel1
tunnel mode ipsec ipv4
tunnel protection ipsec profile VTI

RTR-R
conf t

crypto isakmp policy 1
encr aes
authentication pre-share
hash sha256
group 14
!
crypto isakmp key TheSecretMustBeAtLeast13bytes address 4.4.4.100
crypto isakmp nat keepalive 5
!
crypto ipsec transform-set TSET esp-aes 256 esp-sha256-hmac
mode tunnel
!
crypto ipsec profile VTI
set transform-set TSET
interface Tunnel1
tunnel mode ipsec ipv4
tunnel protection ipsec profile VTI

4. Платформа управления трафиком RTR-L выполняет контроль входящего трафика согласно следующим правилам:
RTR-L ACL
ip access-list extended Lnew
permit tcp any any established
permit udp host 4.4.4.100 eq 53 any
permit udp host 5.5.5.1 eq 123 any
permit tcp any host 4.4.4.100 eq 80
permit tcp any host 4.4.4.100 eq 443
permit tcp any host 4.4.4.100 eq 2222
permit udp host 5.5.5.100 host 4.4.4.100 eq 500
permit esp any any
permit icmp any any
int gi 1
ip access-group Lnew in

5. Платформа управления трафиком RTR-R выполняет контроль входящего трафика согласно следующим правилам:
RTR-R ACL
ip access-list extended Rnew
permit tcp any any established
permit tcp any host 5.5.5.100 eq 80
permit tcp any host 5.5.5.100 eq 443
permit tcp any host 5.5.5.100 eq 2244
permit udp host 4.4.4.100 host 5.5.5.100 eq 500
permit esp any any
permit icmp any any
int gi 1
ip access-group Rnew in

6. Обеспечьте настройку служб SSH региона Left:
RTR-L SSH
ip nat inside source static tcp 192.168.100.100 22 4.4.4.100 2222
RTR-R SSH
ip nat inside source static tcp 172.16.100.100 22 5.5.5.100 2244
SSH WEB-L
apt-cdrom add
apt install -y openssh-server ssh
systemctl start sshd
systemctl enable ssh
SSH WEB-R
apt-cdrom add
apt install -y openssh-server ssh
systemctl start sshd
systemctl enable ssh
Трикса 10 2339638
какиш
11 2340163
Мне нужно вытащить из MySQL таблицы те строки, у которых в ячейке name есть числа с точкой. То есть, "Вася 07" или "Коля.8Никифоров" НЕ войдут в выборку, а "Дима 6.16" - войдёт. Само число в строке может быть где угодно.

Можно ли это сделать чисто на скул-запросе? Пока что у меня только мысль вытаскивать всё как есть, и уже на бэке писать php-скрипт на регулярках, чтобы убрать лишнее.
12 2340175
>>340163
Всё, сам нашёл. Регексп прямо в майскуле: REGEXP '[0-9][0-9][.][0-9][0-9]'
13 2342284
Чё тред мертвый?
В общем есть SQL проект в Visual Studio под платформу "SQL server 2014", он используется для генерации скрипта через publish. Этот скрипт добавляет в базу данных кучу таблиц и данных, но он подходит для mssql, а как сделать так, чтобы он подходил для sqlite? Пишу приложение и хочу отойти от зависимости от сервера базы данных, при этом с минимальными изменениями.
14 2343146

> YDB


ВЫШЛА ВЫШЛА ВЫШЛА ВЫШЛА ВЫШЛА ВЫШЛА ВЫШЛА ВЫШЛА

Комментарии анонов будут? Выглядит буквально безальтернативно. Буквально нет альтернатив.

Хз даже, есть вообще хоть одна БД как альтернатива?
15 2343169
>>343146
FoundationDB не выглядит как альтернатива, кста
16 2343315
>>343146
И где инфа по релизу? Подозрительно тихо выложили в период, когда можно срубить хайпа на импортозамещении.
17 2343333
>>343315

> срубить хайпа на импортозамещении


Опоздали, уже все решили переходить с оракла на постгрес, и никого не остановят новости о плохо обкатанной в проде поделке, даже если она действительно такая идеальная и безальтернативная. Никто не хочет быть бета-тестером.
18 2343371
>>343146

>Комментарии анонов будут?


НИНУЖНО.
Ничего изнутри Яндекса не нужно обычному анону.
Ничего.

Практическое обоснование : Стоунбрейкер уже давно написал VoltDB, но не может на ней заработать. Люди просто покупают самый большой IBM PC-совместимый ПК и крутят на нем свои СУБД.
Тупо выгоднее, проще, надежнее.
19 2343394
>>343315
На петухабре же статейка. https://habr.com/ru/company/yandex/blog/660271/ Ну и так по новостным раскидали, правд я прочитал только сейчас.

> Подозрительно тихо выложили в период, когда можно срубить хайпа на импортозамещении.


Стесняются быть русским мб? Хз вообще. Технология-то вообще норм, то что нужно.

>>343333

> Никто не хочет быть бета-тестером.


Судя по заверениям у них есть свои тесты, скоро мб Jepson сделают. И ДБ используется в своих проектах, если они не пиздят. Т.е. как минимум она полностью рабочая и в продакшене работает.

Если там они не напердолили тысячи бесполезного функционала, то я точно заюзаю на ближайшем проекте. Хотя FoundationDB мне больше нравится, она проще, но там самому придётся кучу говна писать, YDB будет быстрее поднять, наверное, особенно если там встроенная inmemory есть.

>>343371

> НИНУЖНО.


Ну как это нинужно. Вот мне нужны кластерная хуйня с большой потанцевальной нагрузкой. Какие варианты вообще есть? Кроме FoundationDB, офк.

> VoltDB


Это же жаба. И там есть ограничения функционала, YDB вроде полностью попенсорс (но это не точно).
20 2343483
>>342284

>а как сделать так, чтобы он подходил для sqlite?


Открывешь референс по кейвордам для mssql и смотришь, какие из них реализация SQL стандарта, а какие - инхаус костыль. Составляешь таблицу из кейвордов по категорям реализация/костыль, смотришь как реализованные кейворды реализованы в sqlite и пытаешь переписать запросики.
А потом идёт лютая ёбля с переписыванием инхаус костылей на костыли скулайта.

>Пишу приложение и хочу отойти от зависимости от сервера базы данных, при этом с минимальными изменениями.


Маняфантазии манагеров. Поезд волшебной универсальной СУБД ушёл и оставил за собой тонны легаси с диалектами. А рефакторить БД - не бэк/фронт переписывать, тут надо вкладывать усилия, время и деньжищи. Причём в обычную задачу спринта это не оформишь, да и не разбивается толком на подзадачи.
21 2343510
>>343394

>Ну как это нинужно. Вот мне нужны кластерная хуйня с большой потанцевальной нагрузкой. Какие варианты вообще есть?



Нет, не нужна она тебе, поверь.
Кабанчик тебе нужен нормальный. Архитектор там и админ бд. Они тебе расскажут как решить эти задачи.

ВТБ вон на одном сервере mssql спокойно справляется. А твое говно до туда не дорастет
Только данные неоперативные нужно подчищать и перегружать в другие субд
22 2343517
>>343510

>Нет, не нужна она тебе, поверь.


Надо, вася, надо. Других вариантов нет. Либо делать как нужно делать, либо сосать. Сосать я не хочу.

>Кабанчик тебе нужен нормальный. Архитектор там и админ бд. Они тебе расскажут как решить эти задачи.


Вероятнее всего они обоссутся, потому что альтернатив-то YDB и нет особо. Покрайней мере я так и не смог придумать. Хотя в целом можно через FoundationDB, но она сложнее. Либо через порезанные версии с интерпрайсом, ну тут это залупа конская, пошли они нахуй любители денежек.

>ВТБ вон на одном сервере mssql спокойно справляется. А твое говно до туда не дорастет


Не, я планирую очень много трафона гнать. Прямо очень много. Миллионы/сутки или вроде того. Иногда хайповые нагрузки миллион/час.
И аналитику туда ещё ебануть, а чтобы отвал бошки от поддержки не случился - всё на единой БД напердолить.
23 2343518
>>343517

>Либо через порезанные версии с интерпрайсом


в смысле всякие монги, вольты и прочие залупы
24 2343587
>>343517
Кому нужно? Откуда у тебя большая потенциальная нагрузка, не свисти.
25 2343593
>>343587
Мне нужно. Если тебе не нужно - иди делай своё говно без трафона и не отсвечивай.
26 2343606
>>343593
Тебе нужно чтоб подрочиться с модным баззвордом для поднятия ЧСВ, для твоих реальных задач нет необходимости в этой хуйне
27 2343623
>>343606
Прекрати фантазировать.
28 2343643
>>343623
И ты прекрати фантазировать о хуйлоаде и кластерных хуйнях >>343510
29 2343656
>>343643
Пчел, тут только ты нафантазировал что мне нужно, ты в курсе? И продолжаешь влажно фантазировать, про чсв, про задачи, про то что мне нужно, про каких-то кабанчиков.
Ты таблетки не выпил, что столько фантазий ебанул в тред?
30 2343987
помогите написать запрос.
есть поле nvarchar max, нужно по нему найти все записи с определенным значением
31 2343990
>>343987
Microsoft SQL Serevr
32 2344061
>>343656
совершенно точно можно сказать одно - в разрезе нескольких следующих лет ты обязательно где-нибудь ошибешься. просто потому что предвидеть будущее нельзя.
Отсюда и мысль, что тебе скорее всего не нужна сырая БД от Яндекса. Ведь как-то наша айтишечка развивалась все эти годы.

Хочешь вложить свое время и не получить ничего - пожалуйцта.
33 2344082
>>343510

>ВТБ вон на одном сервере mssql спокойно справляется.


Это откуда информация? Я там работаю и только лично мне приходится ковыряться в 4 базах, ещё штук про 5 я слышал, а сколько их всего вообще ебу.
34 2344126
>>344061

> совершенно точно можно сказать одно - в разрезе нескольких следующих лет ты обязательно где-нибудь ошибешься.


Да я уже, десятки раз обосрался и ошибся. По этому работаю в нескольких направлениях.

> просто потому что предвидеть будущее нельзя.


Можно конечно. Причины имеют следствия, именно так составляются новучные теории. Они предсказывают будущее. Другое дело точность теорий. моя теория не очень точная, но предсказать хоть что-то можно всё же

> Отсюда и мысль, что тебе скорее всего не нужна сырая БД от Яндекса.


Альтернатив практически нет. Вообще нет никаких альтернатив YDB, буквально ноль. Единственная проблема которая там есть - производительность может быть не такой большой как у foundationdb и у самописного говна.

> Ведь как-то наша айтишечка развивалась все эти годы.


Она как раз и развивалась в направлении таких БД.

> Хочешь вложить свое время и не получить ничего - пожалуйцта.


Теории, понимаешь? За каждым шагом и мыслью должны лежать теории. Если хочешь что-то получить - нужно иметь теорию, которая проверена на эмпирических данных.
35 2344194
>>344082
с надежного места, епта.
но проверить ты ее сможешь через 10 лет, когда форум sql.ru снова откроют.

А что, эта информация не кажется тебе правдоподобной?
Ну оцени банковским способом риски эксплуатации хуй знает какой базы от яндекс для транзакций.
36 2344195
>>344126

>Альтернатив практически нет


еще раз, альтернатива на поверхности:

эксплуатируешь любую традиционную бд на одном большом сервере для OLTP и непротиворечивых данных, таких как остатки на счетах и транзакции и несколько вторичных, в том числе аналитических, для всего остального.
37 2344207
>>344195
И что делать если нагрузки внезапно скакнут, "пожалуйста пожите, бд йобнулась"? Это несерьезно.
Конечно, это всё в рамках манятеорий, но я изначально делаю под огромный траф. Если оно будет работать - оно должно отрабатывать без хуйни и проблем. И выжимать нишу я хочу до последнего юзверя.
И счета, и аналитика, и данные будут на отдельных кластерах, чтобы в случае чего мог просто расширением аренды покрыть все проблемы.

YDB (или любое другое подобное решение) позволяет совершить плавный переход от лоутрафа до миллиона rps. Может конечно оно какое-то лажовое, тестов мало, jepsen нету, но. Нету альтернатив. Просто нету. Уже давно ищу и ничего нет.
38 2344221
>>344207

>И что делать если нагрузки внезапно скакнут, "пожалуйста пожите, бд йобнулась"? Это несерьезно.



Ничего.
Поставишь кабанчика перед фактом, что планирование не удалось, но хорошо что вам вообще удалось свою идею реализовать и настолько сильно вырасти.

>YDB позволяет совершить плавный переход



А может и не позволяет.

>(или любое другое подобное решение)



Вообще-то, другого такого же нет по определению. В Яндексе все уникальное.
39 2344297
>>344221

>Ничего.


В смысле ничего, пользотели-то уходят. Деньги тоже утекают. Каждая секунда простоя - очень хуево.

>Поставишь кабанчика перед фактом, что планирование не удалось, но хорошо что вам вообще удалось свою идею реализовать и настолько сильно вырасти.


Это мои проекты, лол, ты что, на кабанчиков работаешь в 2к22 году? Ебать ты. Мелкобуржуа нужно становиться.

>А может и не позволяет.


Позволяет, это же кластер.

>Вообще-то, другого такого же нет по определению. В Яндексе все уникальное.


Ну так покажи мне полностью опенсорс кластернуб БД, без интерпрайза и ограничения функционала. Единственная что есть - foundationdb. Всё остальное с ограничениями. Постгрес есть, но там просто реплики и это вообще не то.
40 2344299
>>344297

>мелкобуржуа


>МИЛЛИОНЫ РПС!!!!!!!


Чел... ты хотя бы прототип запили для начала на знакомых технологиях, чтобы понять, у тебя будут вообще клиенты или нет...
41 2344375
>>344299
Статистику по нише взял, да. Миллионы рпс будут. Если хайпанёт.
42 2344784
>>344375
Если.
43 2344815
>>344784
Ну вообще не если, а когда. Для этого открыл сразу несколько проектов и несколько копий существующих. Когда-то будет, главное сделать превосходство как минимум на уровне софта.
44 2345388
>>336742 (OP)
А вы посвящаете какое-нибудь время на развитие? Я уже года два прям вот чтоб самостоятельно, нихуя не делал.
45 2345487
>>345388
На питухоне всякое делаю, щас вот спарк пытаюсь палкой тыкать, каждый день не получается, но раз в 2-3 дня вполне. Щас читаю кабанчика с оппика.
46 2345505
>>345487
А зп какая?
47 2345527
48 2345532
>>345527
У, у меня больше. Значит норм все.
даже у банкира из дно треда больше
49 2345700
https://www.sql-ex.ru

Это мертвый сайт или чего? Чет нихуя не работает, не могу зарегаться.
50 2347062
Аноны, как правильно организовать базу данных?
Хочу с заданным интервалом парсить количество вакансий на хх.ру по тому или иному запросу. И хранить это дело в бд.
Как лучше хранить? Я ничего не придумал лучше чем
id | запрос | количество
Норм будет или не очень?
51 2347123
>>347062
как минимум ты дату проебал
52 2347168
Слушайте, те, кто Дейта проходил, вы где ответы брали? Они вообще сущестуют в интернете?
53 2348045
ЕСТЬ КТО ЖИВОЙ?

уже час над задачей ебусь, понять не могу шо не так. помогите нах
54 2348060
>>348045
Пришли, ща решу
55 2348067
>>348060
прислал за щеку
чувствуется?
56 2348083
>>348067
Хорошо, горячо.
А можно ещё и побольше?
57 2348892
Анончик, дай какую-нибудь наводку, про то как будет работать база при таком сценарии:

Мы пишем в реляционку (постгрес) события. Другой воркер какой-то их вычитывает и удаляет. То есть грубо говоря это очередь.
На таблице есть индексы.
Запись достаточно интенсивная (сотни/тысячи в минуту), удаление так же.

Что будет проиходить с течением времени? Будет ли как-то деградировать эта система?
Я не знаю как именно, но предполагаю, что индексы и таблицы будут фрагментироваться, что может очистка удаленных записей будет создавать какую-то проблему
Наверное этот вопрос еще и специфичен для конкретной СУБД. Подскажи, что погуглить на эту тему? И поддается ли этот импакт (если он есть) рассчетам?
58 2349102
>>348892
здесь все что тебе нужно знать
https://ru.wikipedia.org/wiki/Двоичное_дерево_поиска
59 2349236
>>349102
Ой блять, так и знал что придет дегенарт, который решит выебнуться знанием btree.

Только ты ошибся, дятел, btree - от слова balanced, а не binary.
1.png217 Кб, 1345x617
60 2349384
Анонасы, нужна помощь по лабе. Не получается заполнить таблицу улова, ругается, что праймари ключи уже есть такие. Так а как они могут быть не такими, если они формируются на основе id_катеров и id_рыбы?
Мой говно-код.
https://pastebin.com/AYQGYKcM
Пик, самое задание.
выходы в море тоже нужны правки с датой возвращения, но это главное заполнил таблицу для примера
61 2349387
>>349384
Ругается, когда пытаюсь начать заполнять таблицу улова.
62 2349388
>>349384

>id_катеров


id_выходов, конечно же.
63 2349421
Проводи вставку/удаление пачками, и индекс не будет насиловаться.
64 2349503
>>349384
>>349387
>>349388
Нашел проблему.
65 2349861
Подскажите, как правильно написать запрос поиска по трём необязательным элементам? То есть я могу передать имя, но без промежутка дат, или имя и дату С, но не дату ПО. Примерно отобразил, что надо:
SELECT * FROM tasks
WHERE tasks.Name LIKE ?
AND tasks.Date BETWEEN ? AND ?
66 2349948
>>349236
я не ошибся, а упростил изложения. вопрос же ебанутым образом поставлен.

И, получается, ты в целом знаешь как устроены базы данных, но при этом ебешь нам мозг, задавая ебанутые некорректные вопрос?
ну и говнюк же ты.
67 2349979
>>349861
В функции ты можешь указать значения по умолчанию для дат, какое-нибудь 01.01.1900 и 01.01.9999, в рамках одного запроса я не встречал такой функционал в базах с которыми работал, по-моему так не делается.
68 2350006
>>349861
Сперва подумай, как ты будешь такой запрос кэшировать.
69 2350087
>>349861
Собирай секции where на уровне кода и небеи голову
70 2350366
Анонасы, нужна помощь понять, где я обосрался. Написал запрос на увеличение вес улова семги. Все работает, обновляет то, что надо. Но вот когда пытаюсь создать представление, он выдает ошибку. В запросе update могу обращаться хоть так WHERE "Улов"."ID_Рыбы" = up10_semga; хоть так WHERE "Улов"."ID_Рыбы" = up10_semga."ID_Рыбы";, все равно ошибки.
Говнокод.
https://pastebin.com/XbKqCU8T
Пики: вид представления и 2 разных ошибки.
71 2350374
>>350366

>up10_omega


Это просто опечатка. Для up10_omega те же ошибки.
72 2350375
>>350366
>>350374

>up10_omega


БЛЯТЬ, для up10_semga те же ошибки.
73 2350415
>>350366
Пиздец, нахуя у тебя названия таблиц и столбцов на кирилице?
74 2350417
>>350366
>>350415
Я кажись понял где ты серанул, у тебя условие должно быть такое: таблица1.поле1=(select поле2 from таблица2) а не как ты заебашил.
75 2350469
>>350415

>нахуя у тебя названия таблиц и столбцов на кирилице?


Как сказали сделать, так и сделал. Не моя прихоть.
76 2350471
>>350417
НЕ анонас. АНОНАСИЩЕ! Спасибо огромное тебе! А есть ли возможность как то переписать представление, чтобы потом в where к нему обращаться как я это делаю т.е. просто where "Улов"."ID_рыбы" = up10_semga?
77 2350473
>>350471
Это так не работает, не может значение поля быть равно таблице или вьюхе, оно может быть равно значению поля таблицы или вьюхи которое тебе надо селектнуть подзапросом.
78 2350475
>>350473
Странно, вроде где то в примерах в интернете видел, что обращались просто к вьюхи без полей. Но может там вью сделана как то по особенному. В любом случае, спасибо большое!
79 2350479
>>350475
Даже интересно но не очень покажи пример.
80 2350481
>>350473
Можешь помочь еще с одной вещью?
https://pastebin.com/N3Z8iwVX
Пытаюсь заполнить таблицу выходов в море. Поле выходов в море заполняет рандомной датой. Дальше надо заполнить дату возвращения путем рандомом например от 3 дней до 7 в примере у меня, пока просто затычка одна для всех. И вот тут начинается проблема. Пытался разными способами но не получается, постоянно ругается на то, что нельзя складывать timestamp+timestamp, date+date и т.д. Каким образом это организовать? cast не помогал, все равно ругался
81 2350484
>>350479
Сейчас не могу найти, вчера ночью где то натыкался или показалось.
82 2350486
>>350481

> путем рандомом например от 3 дней до 7


Имею ввиду,дата возвращения = дата отправления + рандомом например от 3 дней до 7.
83 2350487
>>350481

>нельзя складывать timestamp+timestamp, date+date


Ясен хуй нельзя, как ты сложишь 05.05.2022+05.05.2022? Число прибавляй, timestamp+1 добавляет один день, если надо добавить месяцы то через add_months, загугли.
84 2350977
Кулит, /db/абч. Можете разъяснить следующее:
1) На каких языках взаимодействуют с базами в it среде в реальности. Я не о самом SQL, а неком C# с Entity Framework или Python Psycopg2. Есть ли какие-то фавориты?
2) Встречали ли вы доступное объяснение по работе с бд. Я не о книжках где учат синтаксису, более интересуюсь эксплуатацией самих бд. Как проектируют бд? Рисуют схемку в drawIO, а потом перегоняют в СУБД или создают на каком-то ЯП с помощью фрейм ворка или либы? Оценивают ли работу бд по каким-то показателям? Нормально ли, что в бд могут быть несвязанные таблицы, просто табличка, из которой периодически запрашивают какие-то данные?

Вопросы могут быть странными или тупыми. Я не it-шник поэтому решил спросить тут, ибо большинство инфы это учу SQL за 300 ноаносек.
85 2351001
>>350977

> На каких языках взаимодействуют с базами в it среде в реальности. Я не о самом SQL, а неком C# с Entity Framework или Python Psycopg2.


Взаимодействуют через языко-зависимые библиотеки (их называют драйверами и коннекторами), которые получают от разраба SQL-запросы тупо в виде строк, отправляют их в базу по своему низкоуровневому протоколу на сокетах и получают ответы. Дальше на этом можно писать приложение, либо напрямую используя эти библиотеки, передавая SQL-запросы в строках, либо через ORM, которые волшебным и порой неоптимальным образом генерируют SQL-запросы и передают на вход тем же библиотекам-драйверам. В некоторых ORM изобретают высокоуровненвые языки, похожие на SQL, и запросы надо писать на них, эти языки потом всё равно транслируются в SQL.

> Есть ли какие-то фавориты?


Те, что просят в большинстве вакансий. В любом случае учишь SQL и к нему пару популярных для конкретного языка библиотек.

> Как проектируют бд?


Обычно тупо пишут SQL-скрипт с созданием таблиц, ключей. индексов и прочего, продумывая налету нормальные формы, ключи и прочее. Поэтому обычно не надо рисовать никаких графических схем мышкой, Для чего-то нетривиального да, могут сначала набросать схему, а потом всё равно пишут SQL-скрипт. Скрипты сохраняются в исходниках приложения и накатываются в базу последовательно через различные инструменты миграции.

> Оценивают ли работу бд по каким-то показателям?


Да, админы БД настраивают мониторинг и следят за нагрузками, использованием памяти и подобным. Если замечают, что, например, при запуске пользователями определённых операций резко возрастает нагрузка, они сообщают об этом разрабам, а те пытаются оптимизировать запросы, насколько возможно.

> Нормально ли, что в бд могут быть несвязанные таблицы, просто табличка, из которой периодически запрашивают какие-то данные?


Нормально, всё зависит от приложения.
86 2351002

>1) На каких языках взаимодействуют с базами в it среде в реальности. Я не о самом SQL, а неком C# с Entity Framework или Python Psycopg2. Есть ли какие-то фавориты?



На каких целесообразно писать.
Что есть "реальность" ? Набор фирм в которых ты работал последние 3 года? Нет.

> 2) Встречали ли вы доступное объяснение по работе с бд


Дейт. Хз что ты там называешь доступным.

>Нормально ли, что в бд могут быть несвязанные таблицы


это НЕ "нормально", в смысле нормальных форм по Дейту и компании.
Но этот же самый Дейт неоднократно напоминает, что теория нужна для того чтобы лишь только ориентироваться на нее.
87 2351092
>>351001

>В некоторых ORM изобретают высокоуровненвые языки, похожие на SQL


А зачем на это тратить время разработки, если можно дать напрямую SQL? Ограничить возможно для защиты от дурака?

>через различные инструменты миграции.


А что за миграция? В моем понимание это перенос данных из исходника в БД, или из БД №1 в БД №2. Это исходя из смысла слова.
>>351002

>Хз что ты там называешь доступным.


Другой анон упоминал про ORM. Вот есть где про это посмотреть/прочитать? Вообще хотелось бы посмотреть какой-то курс универский на подобии Хирьянова.

>На каких целесообразно писать.


Правильно ли я понимаю? Если компания запускает свой условный проект с использованием БД и управляю ей помимо СУБД выбранным мною языком и ей будет все равно какой это будет язык лишь бы можно было найти толкового программиста?
88 2351097
>>351092
про ORM фундаментального почитать особо нечего. А поверхностных статей полно.
Может быть есть на английском не переведенные книги, но попробуй еще начальные главы из книги "Java Persistence API и Hibernate" (не обязательно становиться грибом-джававиком чтобы понять эти главы)

>Правильно ли я понимаю? Если компания запускает свой условный проект с использованием БД и управляю ей помимо СУБД выбранным мною языком и ей будет все равно какой это будет язык лишь бы можно было найти толкового программиста?



здесь я сдаюсь. Просто непонятно что ты спрашиваешь.
Реально какой-то разрыв в понятиях у тебя и у программистов.
Выбор и основного языка и СУБД являются важными.
Возможно ты имел ввиду такое :
позволяет ли ORM в языке абстрагироваться от деталей СУБД настолько, что можно легко сменить СУБД ?
ответ - ДА (но нет)
89 2351102
>>351092

> >В некоторых ORM изобретают высокоуровненвые языки, похожие на SQL


> А зачем на это тратить время разработки, если можно дать напрямую SQL? Ограничить возможно для защиты от дурака?


Эти языки более переносимы и транслируются в разный SQL для разных БД. Используются они только в сложных случаях, обычно хватает стандартных методов на уровне прикладного языка.

> А что за миграция? В моем понимание это перенос данных из исходника в БД, или из БД №1 в БД №2. Это исходя из смысла слова.


Миграция схемы БД. Так называют запуск SQL-скрипта, изменяющего схему, ещё так могут называть сам скрипт.
90 2351158
>>351097

>позволяет ли ORM в языке абстрагироваться от деталей СУБД настолько, что можно легко сменить СУБД ?


Обычно впрочем это выливается в требование знания SQL, основного языка ORM и детали реализации самой ORM.
91 2351180
>>351158
это сложно понять, но простые в использовании инструменты в ряде случаев требуют чтобы ты понимал как все работает под капотом. где-то этого не требуется, но точно не в бекенде
92 2351328
>>351097

>>Правильно ли я понимаю? Если компания запускает свой условный проект с использованием БД и управляю ей помимо СУБД выбранным мною языком и ей будет все равно какой это будет язык лишь бы можно было найти толкового программиста?



возможно, ты хотел спросить:
я является ли ORM настолько доминирующей технологией, что позволяет нанимать просто программиста без знаний конкретного языка и ORM чтобы потом переключаться между языками - и снова ответ ДА (но нет).
Опыт работы с ORM конечно пригодится в любой другой библиотеке в любом другом языке.
но очень уж много нюансов. Где-то миграции вручную пишут на SQL до сих пор ( да , я вас гошников имею ввиду)
93 2351573
>>351097
Скажем так, стоит задача разработать БД + прикрутить форму для ввода критериев для дальнейших запросов. Вот я пытаюсь понять, какие критерии помимо нормальных форм применить. На каком языке лучше писать форму - Шарп или Питон. Питон по мне проще, но он медленнее. Но вряд ли в БД будет больше сотни запросов. И вот как это все запилить и потенциально дать доступ другим сотрудникам. Если с формой понятно, то с БД нихуя нет.
94 2351685
>>351573
А то можно подумать ты дохуя языков знаешь?

я тебя раскрыл, ты - кабанчик. можешь только комбинировать псевдознания, но работать и писать программу тебе западло.
Еще хуже если "аналитик".

Тьфу на тебя. Никакого серьезного совета не жди.
1637165685279.webm589 Кб, webm,
756x426, 0:05
95 2351794
>>351685

>Еще хуже если "аналитик".


За що?!
другой анон
96 2352993
Сап, двачик. Есть один бот на питоне подключенный к бд. И есть одна функция, цель которой определять нового пользователя по его айди, записанного в бд.
Вот то, что я высрал: https://www.codepile.net/pile/PVLwp0yl

На выходе получаю за щеку. mysql.connector.errors.DatabaseError: 2006 (HY000): MySQL server has gone away

Проблему гуглил. Либо база большая, либо кривые руки и говнокод. База у меня с 3 записями, так что выбор небольшой. Очень надеюсь на вашу помощь дабы понять обосрался я в самом запросе или мне съебать в питон тред на растерзание местному клоуну
97 2352997
>>352993
блять какая нахуй база данных, ты даже линк нормально приложжить не можешь, пиздуй улицы подметать
98 2353195
>>352997
Там пусто потому что я разобрался сам и удалил код с поста, а ты можешь пойти нахуй. Чем больше общаюсь с айтишниками, тем больше понимаю, что их большинство составляют затравленные чмошники или агрессивные гниды вроде тебя. За год в pr видел человек 5 нормальных и доброжелательных ребят. Как вы друг друга терпите, пиздец
изображение2022-05-09203825675.png232 Кб, 1608x381
99 2353217
Не получается создать триггер, который будет защищать от вставки одинаковых записей в таблицу (связывает две таблицы через многие-ко-многим). Что делаю не так? PostgreSQL

Код:
CREATE TRIGGER dont_insert_same_values_to_album_song
BEFORE INSERT
ON album_song
WHEN EXISTS(
SELECT *
FROM album_song, INSERTED
WHERE album_song.album_ismn = INSERTED.album_ismn AND album_song.song_ismn = INSERTED.song_ismn
) THEN
ROLLBACK
PRINT 'Не добавлено: запись уже существует'
END;
100 2353219
>>353217
При замене этого говна

>EXISTS(


>SELECT *


>FROM album_song, INSERTED


>WHERE album_song.album_ismn = INSERTED.album_ismn AND album_song.song_ismn = INSERTED.song_ismn


>)


на 1 (true) так же возникает ошибка в этом месте
101 2353481
>>353217
Нахуй тебе триггер, создай уникальный индекс.
image.png13 Кб, 714x144
102 2354964
Не ебу где скрыт подъёб. Нашёл "минимальную верхнюю границу интервала", но на второй проверке крашится. Есть идеи, анон?

Код:
WITH temp AS ( SELECT B_V_ID, MIN(B_DATETIME) time
FROM utB
GROUP BY B_V_ID ),
temp2 AS (
SELECT TOP 1 WITH TIES B_V_ID, utb.B_DATETIME
FROM utB
JOIN utV uV
ON uV.V_ID = utB.B_V_ID
WHERE B_DATETIME >= (SELECT MAX(time) FROM temp)
ORDER BY utb.B_DATETIME
)

SELECT DISTINCT utV.V_NAME
FROM temp2
JOIN utV
ON temp2.B_V_ID = utv.V_ID
meme00060.jpg83 Кб, 639x641
103 2354994
Сап, ананасы.
Дрочу фронт, решил что знания в SQL не помешают, поглядел курс на фрикодкэмпе, основы понял. Поставил перед собой задачу сделать форум-борду с бесконечной вложенностью комментариев как на (((реддите))). Уткнулся в проблему как организовать бд:

1) Есть лишь одна таблица:
posts:
...
id BIGSERIAL PK,
is_thread boolean,
answer_to REFER posts (id),
...

Такой вариант прост и понятен, треды получаю по is_thread, затем запрошиваю все все ответы на него, затем на каждый ответ запрашиваю еще ответы и так до конца. Но там образом запросов на сервер получается очень дохуя и я понимаю что это блять бред (или нет?).

Мне стоит пересмотреть саму таблицу? Разбить на несколько? Использовать правильный запрос? Как получить рекурсивно все ответы, а с ними и ответы на ответы за запрос, или это не возможно? Помогите, будьте добры, гугл не помог, с меня как всегда.

пикрандом
1651429292120.png32 Кб, 1253x485
104 2355004
>>354994
Вообще не близкая мне задача, может под каждый "корневой" тред создавать патрицию и добавлять в каждый пост внутри ссылку на него? Так хотя бы он не по всей "борде" будет смотреть из-за каждого поста.
>>354964
Разбирать что ты там написал я в рот ебал, без негатива, ответ на пикче, вроде быстро решил, больше пытался с постановкой задачи разобраться, если по моему скрипту вопросы будут - завтра отвечу.
105 2355065
>>351180
В том и проблема, что ORM добавляют оверхеда к знанию стэка, причём необязательно, что эти знания будут полезны за пределами этой ORM. Самый очевидный пример - множественные инсерты. Банальная операция, если оперируешь SQL выражениями с интерполяцией, но лютый пердолинг в ORM. Не говоря про всякие хитровыебанные джоины/вьюхи/партишоны.
106 2355067
>>354994

>Поставил перед собой задачу сделать форум-борду с бесконечной вложенностью комментариев как на (((реддите)))


Реддит - говно в этом плане. Все сорта вложенных комментариев - рак как в плане организации данных, так и в плане UX.

parent_id int REFERENCES posts

Посты с нулом заместо parent_id - ОП-посты. На реддите один хуй все комментарии привязаны к посту.
sage 107 2355076
>>355069 (Del)
Репорт.
108 2355394
Сап, аноны, у меня в постгресе есть таблица с полем id типа serial, как мне получить следующий после данного id? id+1 понятное дело не сработает, т.к. запись с таким id могла быть, например, удалена.
110 2355448
>>355435
nextval возвращает незанятый id в последовательности.

Подробнее объясню, что мне нужно:

есть таблица

id | name
1 | Vasyan
2 | OP-hui
4 | test123

id - serial. Мне нужно из id = 1 получить 2 и из id=2 получить 4.
111 2355462
>>355448
select min(id) from таблица where id > айди;
bigthumb.jpg63 Кб, 853x480
112 2355467
>>355462
Спасибо!
Screenshot from 2022-05-14 18-43-52.png25 Кб, 734x126
113 2356304
Привет, Анон!
Помоги, пожалуйста, понять или направь куда копать.

Дано:
Таблица 1 (Поля: Договор, Продукт)
Таблица 2 (Поля: Договор, Выручка)

Задача:
вывести те договора, что имеют выручку и нет в продуктах интернета и кабельного тв.

Моё решение на пик. Я нарушил синтаксис SQL?
114 2356312
>>356304

>Моё решение на пик. Я нарушил синтаксис SQL?


да
115 2356326
>>356312
могу ли я не использовать оператор where, а вместо этого добавить это условие под оператор and?
116 2356327
>>356304
1. Идентификаторы пишутся не в 'одинарных' кавычках, а в "двойных". В 'одинарных' только строковые константы.
2. После join идёт таблица, а не столбец, так же, как таблица после from. Столбцы только в on-части.
3. where должен идти в самом конце после всех джойинов.
4. Вообще, можно сравнение выручки с 0 засунуть в on-часть, как ты сделал с Таблица1.Продукт, а можно и наоборот их все вынести в where, а в on оставить только равенство договоров. В этом случае разницы не будет.
117 2356329
>>356327
Спасибо за советы и подсказки!
118 2357901
Сап. Подскажите плес. Такая вещь как "уровень изоляции транзакций" назначается на какую сущность при работе с БД? На транзакцию? На соединение? На всю базу?
119 2358045
>>357901
Обычно на сессию. Но вроде можно и на бд проставить в опциях самого сервере.
120 2358166
Объясните тупому или направьте на плюс-минус толковое решение, как ебнуть вычисляемый в одной таблице столбец, который вычисляется по столбцам других таблиц? Или может оно нахуй не надо?
121 2358185
>>358166
Представления/вьюхи гугли если я правильно понял что ты хочешь сделать.
122 2358190
>>358166
Откуда нам знать, надо тебе или не надо?
Это тебе не эксель. Можешь создать вьюху, в которой будешь подсчитывать значение по нужной тебе формуле, но в такую вьюху ты ничего не сможешь инсертнуть.
Либо делай как нормальные люди на уровне приложения при получении данных из этой таблицы.
123 2358194
>>358185
>>358190

Ну типа, нужно посчитать конечную стоимость по данным из других таблиц (стоимость тура в таблице тура = сумма авиабилета из таблицы авиабилетов + сумма проживания из таблицы отелей).
124 2358209
>>358194
Мы на хую вертели твои авиабилеты с отелями, родной, если это лаба из универа и всё надо в базе делать - google=>create view. Если ты что-то приличное пытаешься склепать - считай на уровне приложения.
125 2358697
А цифровые подписи для хранения паролей в базах данных используются вообще? Типа хакер такой взломал базу данных, подменил хеш и такой "блин не пускает из-за цифровой подписи"
Или тогда это и нормальным применениям помешает
126 2358853
>>358697
Не используются, какой смысл? Если ты можешь подменить хеш, то можешь и цифровую подпись. Не будут делать так, чтобы одно хранилось в надёжном хранилище, а другое в ненадёжном. Подписывают обычно что-то такое, что выгружается из одной системы и загружается в другую, например, какие-нибудь отчёты.
127 2359442
Анон, как правильно сделать:
Студент может учиться одновременно в нескольких группах. Где-то платно, где-то на бюджете как пример. Как связать это? У меня неправильно one to many в payment (пик 1)
Моя идея: сделать таблицу Seat - место (пик 2), но выглядит как-то странно, одни ключи. Так делают вообще?
128 2359448
>>359442
upd
на втором пике таблица studs_grps не обращайте внимания, она не нужна.
129 2359455
>>359442
Да, делают, многие-ко-многим так и реализуется.
130 2359684
Есть база данных в json формате. Можно ли её как-то поместить в реляционную субд? Допустим, Postgresql
131 2359687
>>359442

>выглядит как-то странно, одни ключи. Так делают вообще?


А по-другому никак. Можешь добавить даты начала/окончания действия записи.
132 2359689
>>359684
В постгресе есть социальный тип колонки для жсонов, но по хорошему надо нормализовать структуру и написать скрипт для парсинга этой жсон и загрузки в таблицы.
133 2359710
>>359689
То есть можно скриптом перевести эти нереляционные даннные в связанные таблицы?
Просто я не совсем понимаю, как с этими лучше обращаться. Будет ли вообще профит от такой операции или можно так же в json хранить?
134 2359725
>>359710
Смотря что за данные. Если их немного, либо ты этот жсон просто хранишь и не обрабатываешь, можно оставить жсон. А если много, либо приходится часто обновлять отдельные поля, лучше несколько нормализованных таблиц.
135 2359744
>>359725

>Если их немного,


619Kb
136 2359760
>>359744
Это относительно немного. Может и не нужен постгрес, достаточно sqlite.
137 2362080
Начиная с какого размера стоит партиционировать таблицу? Или есть другие признаки что пора, кроме количества строк?
138 2362105
>>359442
А где ты схемку рисуешь?
139 2362106
>>362080
Партиционируй, если запрос виснет.
140 2362182
>>362080
Когда запросы появляются на срез данных, который удобно партицировать (дата например), и происходит вис
141 2362263
>>362080
если твой критерий размер - то ни с какого.
нет никакой причины использовать партиции, если индексы работают.
Думай о партиционировании как дополнительном измерении отсечк и данных в условиях когда оптимимизатор обосрался.
Обсирается он довольно редко.

Просто сей странный прием экономит разработчикам время потому что их кабанчик подгоняет. А нормальному ДБА он редко нужен.
142 2362264
>>362080
если твой критерий размер - то ни с какого.
нет никакой причины использовать партиции, если индексы работают.
Думай о партиционировании как дополнительном измерении отсечк и данных в условиях когда оптимимизатор обосрался.
Обсирается он довольно редко.

Просто сей странный прием экономит разработчикам время потому что их кабанчик подгоняет. А нормальному ДБА он редко нужен.
143 2362266
Подскажите плес, сколько времени какая-то транзакция будет ждать снятия блокировки с данных, наложенных какой-то другой транзакцией? Есть ли какой-то таймер ожидания, и если он выйдет что произойдет? БД MSSQL. Если не ответите, то может пнете куда-то где можно об этом не очень длинно и сложно почитать, или хотя бы длинно и сложно.
144 2362574
>>362266
будет ждать пока блокировка не пройдёт. По идее в MSSQL есть механизм борьбы с дедлоками, но работает так себе.

Вот мб будет полезно, из личных заметок:
https://pastebin.com/Zw21ftdE
145 2362636
>>362266

>Есть ли какой-то таймер ожидания, и если он выйдет что произойдет?


Результат не закомитится, драйвер вернёт ошибку, которую приложение обработает.
146 2362639
>>362636
Это если лочить с NOWAIT.
147 2362988
>>362574

> с дедлоками


Но это не дедлок. Просто ожидание процесса, который что-то делает, пусть даже завис. Дедлок это взаимная блокировка.
изображение.png12 Кб, 331x152
148 2363206
Привет программач, пытаюсь разобраться с базами данных. До этого работал с бд по средством либ которые сами создают и поднимают бд по моделям, но возникла потребность создать обычную под уже готовый проект.

Так вот возник вопрос: как поднять бд?
Ну вот создал я бд с таблицами скажем в Постгресе, а дальше что? Как блять ее запустить то? Либа просит ей скормить url или uri от бд, значит нужно ее запустить как? и найти адрес где его взять?.
149 2363235
>>363206
Это называется строка подключения. Это особенность скорее не СУБД, а используемых драйверов/коннектеров, через которые ты из своего языка подключаешься к БД. Например, в джаве JDBC, и строка там такая:
jdbc:postgresql://host:port/database
150 2363355
>>363235
то есть после того как я создам бд мне достаточно указать строку подключения к ней и все заработает?
151 2363364
>>363355
Да, просто вставляешь строку и всё само делается.
152 2364264
Работал ли кто-то с neo4j в продакшене? Может кто—то поделиться опытом и подводными?
Уже второй месяц пишу микросервис на нем. Сперва пользовался оберткой из spring data. Но теперь есть пара запросов на cypher. Но сущности пока всего три. И мне анонсировали еще штук 5. До сих пор не уверен, что neo4j вообще нужен и реляционки бы не хватило, а это не просто эксперименты тимлида. Тимлид и ответственный за сервис мидл как то сами особо не изучают neo4j и даже мои конспекты доки и ответов со стака по ими же написанным мне тасам читают через раз.
153 2364305
>>343333
Представьте ебало когда еще не отошел кликхауса а росскийские анальники уже тащат в твой продакшен ydb.

>Никто не хочет быть бета-тестером.


Кроме российских анальников
154 2364342
>>364305
А что не так с кликхаусом?
155 2364357
>>364342
Проблема не в нем самом, чел. Проблема в анальниках которые тащат, прямо скажем, сырой местячковый nosql туда где классические реляционки его выносят в одну калитку.
156 2364531
>>364305
Ну извените, Кликхаус - принципиально другая нишевая вещь и тащить его имеет смысл.
Вот зачем нужно рисковать своими данными с YDB, если можно просто купить компьютор побольше - хз.
157 2364845
программач поясните анону плез

за языки программирование
что для чего используют?

допустим
запрограммировать станок - какой язык?

написать приложение для ios - какой язык?

запрограммировать дрон и его управление - какой?

написать приложение которое будет в живом времени взаимодейтсвовать с тобой и теми кто рядом - какой язык?

и вот мне нравится например squoosh сервис, но там не загрузить много изображений сразу, вот чтобы это сделать - какой язык нужен?
158 2364892
>>364531
Чел, я тебе секрет открою: кликхаус и ydb примерно одного возраста, багов там одинаково дохуя.
159 2365069
сап программач, решил сделать небольшой костыль для бд магазина, чтобы отпускать некорректные чеки по ОФД, но запрос отрабатывает только первую строку @ORDERS, не переходит ко второй. СУБД - MSSQL 2008R2, прошу совета у гуру анальных утех

DECLARE @ORDERS TABLE (NUMBER_DOC VARCHAR(50));
DECLARE @ID_INTERNET_ORDER_GLOBAL TABLE (ID INT IDENTITY(0,1) PRIMARY KEY, ID_GLOBAL VARCHAR(100));
DECLARE @ITERATOR INT = 0;

INSERT INTO @ORDERS(NUMBER_DOC) VALUES
('bebebebe.ru/2990303990')
('blablabla.ru/24000053501');

INSERT INTO @ID_INTERNET_ORDER_GLOBAL(ID_GLOBAL)
(SELECT ID_INTERNET_ORDER_GLOBAL FROM INTERNET_ORDER WHERE NUMBER_DOC IN
(SELECT NUMBER_DOC FROM @ORDERS))
SELECT FROM @ID_INTERNET_ORDER_GLOBAL
WHILE @ITERATOR <= (SELECT COUNT(
) FROM @ID_INTERNET_ORDER_GLOBAL)
BEGIN
DECLARE @XML XML
DECLARE @ID VARCHAR(100) = (SELECT ID_GLOBAL FROM @ID_INTERNET_ORDER_GLOBAL WHERE ID = @ITERATOR)
SET @XML = (SELECT('<XML>
<items>
<item>
<ID_INTERNET_ORDER_GLOBAL>'+@ID+'</ID_INTERNET_ORDER_GLOBAL>
<CASH_TYPE>CSE</CASH_TYPE>
</item>
</items>
</XML>'))
exec dbo.UDP_INTERNET_ORDER_CS_PRINT @XML
END
159 2365069
сап программач, решил сделать небольшой костыль для бд магазина, чтобы отпускать некорректные чеки по ОФД, но запрос отрабатывает только первую строку @ORDERS, не переходит ко второй. СУБД - MSSQL 2008R2, прошу совета у гуру анальных утех

DECLARE @ORDERS TABLE (NUMBER_DOC VARCHAR(50));
DECLARE @ID_INTERNET_ORDER_GLOBAL TABLE (ID INT IDENTITY(0,1) PRIMARY KEY, ID_GLOBAL VARCHAR(100));
DECLARE @ITERATOR INT = 0;

INSERT INTO @ORDERS(NUMBER_DOC) VALUES
('bebebebe.ru/2990303990')
('blablabla.ru/24000053501');

INSERT INTO @ID_INTERNET_ORDER_GLOBAL(ID_GLOBAL)
(SELECT ID_INTERNET_ORDER_GLOBAL FROM INTERNET_ORDER WHERE NUMBER_DOC IN
(SELECT NUMBER_DOC FROM @ORDERS))
SELECT FROM @ID_INTERNET_ORDER_GLOBAL
WHILE @ITERATOR <= (SELECT COUNT(
) FROM @ID_INTERNET_ORDER_GLOBAL)
BEGIN
DECLARE @XML XML
DECLARE @ID VARCHAR(100) = (SELECT ID_GLOBAL FROM @ID_INTERNET_ORDER_GLOBAL WHERE ID = @ITERATOR)
SET @XML = (SELECT('<XML>
<items>
<item>
<ID_INTERNET_ORDER_GLOBAL>'+@ID+'</ID_INTERNET_ORDER_GLOBAL>
<CASH_TYPE>CSE</CASH_TYPE>
</item>
</items>
</XML>'))
exec dbo.UDP_INTERNET_ORDER_CS_PRINT @XML
END
160 2365070
>>365069
проiбав розмiтку
161 2365197
Объясните, что этим долбаебам от меня нужно. Урок называется Null handling, говорят мол используй функцию nullif, но я в корень не понимаю на кой хуй мне сравнивать 2 выражения в этом кейсе, если мне надо заменить значения в которых null на строковую билеберду %говно нот фаунд%?
162 2365200
>>365197
Бля, там пустая строка была и все равно не понимаю нахуй через коалсенсы и нулифы это говно заменять, когда есть IsEmpty. Че за ублюдок этот кал придумывал.
163 2365745
>>336742 (OP)
Какие подводные хранения HTML строк не полноценный HTML документ, а его фрагменты в mysql колонке с типом XML? Сейчас хранится в виде обычной строки. Не устраивает то, что для того, что бы вытянуть какую-ту часть селектором приходится загружать всю строку на бэкенд, там делать HTML парсинг, после чего отдавать на фронт. Хочу избавится от лишнего звена в виде парсера на бэке, стоит того?
164 2365782
>>365745
Зачем вообще хранить HTML в БД?
165 2365807
>>365782
У меня в приложении есть WYSIWYG редактор Quill, который может сохранять только как HTML. Вот то, что пользователь там наредактирует я и сохраняю
166 2367005
>>364845
И ты для этого дурацкого вопроса решил выбрать именно баз данных тред?
Может быть сколько угодно слоев языков друг над другом (транслирующихся один в другой). Пользователь языка (программист) обычно сидит на верхнем или около-верхнем уровне, а иногда и сам создает более высокие. SQL кстати неплохой пример, он сам по себе обычно только прокладка между СУБД и языком общего назначения, который спамит скриптами запросов сервер БД.
167 2367714
>>365807
Трансформируешь этот хтмл в джейсон и не ебёшь мозг. XML и HTML может визуально похожи, но у них разные правила парсинга, так что ебанёшься от постоянных ошибок БД.
изображение.png11 Кб, 547x176
168 2367715
Аноны, помохите. У меня такой же вопрос, как здесь
https://stackoverflow.com/questions/12102200/get-records-with-max-value-for-each-group-of-grouped-sql-results
Я прочитал первый ответ, но ничего не понял. Откуда там вообще взялись o и b?
На пике я скопировал ответ в онлайн sql, он выдает

> ERROR 1054 (42S22) at line 7: Unknown column 'o.Group' in 'on clause'

169 2367717
>>367715
Хотя я дурак, надо было вместо Group нужный мне столбец вписать.
Но вопрос все равно в силе, что за o и b, и как работает эта магия
170 2367964
>>367714
Ну в общем говоря, лучше сразу парсить на бэке, спасибо.
sage 171 2369190
>>369173 (Del)
Репорт.
172 2370634
ананасы нид эдвайс

я хочу сделать для знакомой парикмахерше сайт с возможностью сделать к ней запись ( она охуенно стрижет, я хочу так выразить ей респект ) , всё что касается всяких CSS и html я знаю. но нужна будет база данных и какие-то формы записи, очевидно.

что мне для этого понадобится? куда копать? какую базу данных использовать и как ее прикрутить к сайту?
какой сейчас актуальный стэк?
173 2370641
>>370634
Скорее всего, для этого есть готовая CMS, и код не придётся писать вообще.
СУБД для такого сайта подойдёт любая.
174 2370656
>>370641
но CMS это же если писать сайт на php?

а какая субд будет наиболее проще для первого раза?
я сделаю нормально, но просто чтобы мне не сломаться о сложность, чтобы не было чрезмерно много информации которую сразу надо в мозг записать
175 2370661
>>370656
я не хочу писать сайт на wordpress, там бесплатные шаблоны полное говно
поэтому хочу сделать сам, со своим дизайном
176 2370669
>>370656
может для этого лучше сделать простенькое приложение?
177 2372749
>>370661
Копай в сторону headless CMS и натягивай свою вёрстку на джейсоны, которые эта CMS высирает.
И она кстати тебе всё равно не даст.
178 2372777
>>372749
ей под 50, челик )))
просто стрижет охуенно, со всякимимашинками wahl, свистелками шейверами и тп, и дешево

хочу ее отблагодарить
179 2372838
>>372777

>ей под 50, челик


да лан, всё нормально. никто тебя не осуждает
180 2373296
>>336742 (OP)
Сап DB, посоветуйте визуализатор бд, по типу MySQL Workbench. Что интересует
1. Реверс инженеринг существующей бд
2. Отображение визуальной схемы бд (ER Diagram)
3. Отображение связей и их типов между таблицами.
181 2373636
>>373315 (Del)
Я скорее всего многое не понимаю, цель следующая. Я создаю связи с разными типами, мне для личного убеждения нужна какая-то отладка, чтобы понимать какая связь реально установлена между таблицами.
182 2374450
Зачем нужны блокировки на уровнях изоляции кроме Serializable?

Ведь по сути одна транзакция ждет коммита другой транзакции просто чтобы выполнить автоматические слияние данных(первая транзакция данные обновила, закоммитила, а вторая обновила после и тоже закоммитила автоматически, и зачем мы ждали, ведь то же самое было бы с другой последовательностью)?
183 2374474
>>374450

> Зачем нужны блокировки на уровнях изоляции кроме Serializable?


Чем выше уровень изоляции - тем медленнее работает БД. Самым высоким уровнем транзакции можно добиться такого, что транзакции будут выполняться тупо последовательно, и тогда вообще не будет смысла в нескольких ядрах и нескольких нодах приложения, всё будет тормозить и ждать очереди.

> Ведь по сути одна транзакция ждет коммита другой транзакции просто чтобы выполнить автоматические слияние данных


Это только если обе транзакции лезут в одну и ту же таблицу и обращаются к одним и тем же записям, тем более если обе хотят туда что-то записывать, а не просто читают. Таких случаев сравнительно немного, большинство транзакций работает с разными данными, не мешают друг другу.

> (первая транзакция данные обновила, закоммитила, а вторая обновила после и тоже закоммитила автоматически, и зачем мы ждали, ведь то же самое было бы с другой последовательностью)?


Одна из транзакций не закоммитится, будет ошибка.
92ad78ac7f6c49eeb386d9bea943e3e6.png73 Кб, 1123x794
184 2374475
>>374450
Вот тут delete автоматически удаляет новую версию даже без нового select и автоматически мержит те данные на шагах 8 и 9.
185 2374477
>>374474
>>374475
Вот тут коммит проходит в 3 транзакции.
186 2374484
>>374474

> Одна из транзакций не закоммитится, будет ошибка.


У меня в postgres закоммитилось два обновления одного и того же.
187 2374491
Кажется я понял, про что это, если есть первая транзакция, так она после изменения данных должна быть уверена, что никто до конца их не изменит и не закоммитит.
Пример из википедии https://en.wikipedia.org/wiki/Record_locking врет в данном случае. Клерк 2 спокойно перезапишет документ Клерка 1.
А данные Клерка 1 никто никогда не увидит.

Можно даже начать транзакцию, удалить данные, попытаться обновить их во 2 транзакции, а потом закоммитить первую, ошибки второй не будет, просто вернется
UPDATE 0
188 2375409
Допустим я хочу реализовать trie в постгресе. Ничего путного по теме не нашёл, но есть структура ltree, это она? И какой же у неё уёбищный синтаксис, как и у всех расширений постгреса.
189 2375454
>>375409
Делать автокомплит на основе постгреса такая себе затея. Читай реплику и строй человеческий https://en.wikipedia.org/wiki/Suffix_array или https://en.wikipedia.org/wiki/Levenshtein_automaton (ну или возьми готовую либу и не страдай хуйней).
190 2376349
стоит ли читать HeadFirstSQL если полный ноль?
191 2377514
>>376349
Я когда был нулем читал 1ое издание вот этой. Там было вообще 300 очень маленьких страниц, без дурацких картинок, теперь 400.
192 2377833
>>336742 (OP)
Сап, двач. Нужно хранить много HTML, еще и с изменениями - то есть вот HTML за такую дату, вот - за такую. Какое хранилище мне лучше выбрать? Или посмотреть, как это делает гит с помощью слепков?
193 2377838
>>377833
Посмотри, как вики-движки хранят историю страниц.
194 2377899
>>377846 (Del)
Да в теории весь сайт (любой) в HTML. Хочу диффы формировать.
195 2377933
>>377920 (Del)
Спасибо, пойду алгоритмы формирования диффов гуглить.
196 2378182
>>377899

>Хочу диффы формировать.


А зачем?
197 2378267
>>378186 (Del)

>а заебись бы было, не?


Можно фото шлюх с интимсити парсить, только хз как это легально монетизировать, да и гораздо более интересные схемы были или есть. Когда тянок на фото разводят, а потом шантажируют .
198 2378293
>>378186 (Del)
у вк есть api, использовать его для мониторинга и сталкеринга проще

я бы не хранил фул диф. проще в каждом объекте связанном с профилем иметь инфу о дате, когда она добавилась или была уделена
199 2378339
>>378182
Честно сказать, на форче неплохую идею для пет-проекта подкинули.
200 2378512
>>378339
Не расскажешь идею?
201 2378583
>>378512
Should do the following:
1. Poll URL and generate diff from previous version
2. Diff algorithm should be configurable, user should be able to add them as plugins. For starters simple HTML text diff is enough.
3. GUI should be able to show diff to user. Extra points if diff can generate abbreviated version, implementation may be site-specific.
4. GUI should be able to show worldmap, mapping URL to location. Any URL->Location mapping method will do.
5. Program should be able to use URL-specific connection settings, proxy should be enough. Extra points for ovpn/wireguard/whatever
6. Generate pdf with diff per time period.
7. Tech stack - elixir, phoenix (live updates on map with channels), DB - any kind, content storage on S3 (minio). Frontend - your choice.
41A-KL8Y1vL[1].jpg31 Кб, 381x500
202 2378666
203 2378688
Сап двачь!

Дело в том что мне нужно key value бд. Можно и графовую, если таких kv нет. Реплицируемая в многокластерную хуйню (обязательно), шардинговая (не обязательно, но желательно). Полностью опенсорс, без разделения важных фич для интепрайса. Без JVM.

Нашел только FoundationDB. Касандра ещё норм, но oна жава.
204 2378800
>>378688
memcached?
205 2378826
>>378800
Она же на диск не пишет. Мне что, ручками всё делать? Ну ладно если на диск не пишет можно реплик ебануть 10 штук, но она и реплики и кластеры не поддерживает, мне что тогда, ручками реплики делать? Слишком слошна.

Пизда конечно, никаких бд по моему запросу нет по сути. Вот были времена когда майскуль ебанул на сервер и всё, похуй. Отвалился так отвалился, старую базу поднимай.
206 2378836
>>378826
А ты откажись от требования "без JVM".
207 2378845
>>378833 (Del)

> berkeleydb


Хммм. Репликация есть. А я думал что нет. Хорошо что подсказал, нужно изучить детальнее её. Но конечно там ручками дохуя придётся пердеть.

> leveldb


У него репликация через JVM, неприятненько.

>>378836
Это да, если отказаться то просто берёшь касандру нахуй и всё. Но если я откажусь от жвм, то. То. То хуй знает даже. Это же только БД будет на жабе висеть, нахуя она нужна-то, придётся часть логики на жабу переносить. А так дойдёт до того что придётся и вообще всю бизнес-логику на жабу переносить, епты. Неприятно же! Все эти классы ебаные, оопешники блядь.

Алсо, а касандра жозенько пропихивает свой датастакс в опенсорс? Вообще не читал на эту тему. Редис, например, прямо ебёт досуха каждого долбоеба кто решил попользоваться редисом.
208 2378942
>>378688

> графовую



Господи Иисусе, зачем?
209 2378970
>>378942
Ну я могу довольно просто изменять почти всю бизнес-логику под БД. Не проблема вообще, можно сделать весьма неплохо, если перестроить данные так чтобы оно графы мне считало. Но похуй. У фоундейшена появился хороший калкурент.

https://griddb.net/en/
Griddb епта. Используется и сделано тошИба. Ну типо епта с++, сделана японцами, не геями-кожевниками из эпла. Внушает доверие, а? Как низкорослый карлик доверяю низкорослым карликам из Японии. Сайт хорошо выглядит, красивый маскот. Потратились ребята. Есть клиенты под жабу, питон, ноду. Ноу-ебля эдишн короче. КАКОВО НАХУЙ КОГДА ЕБАЦО НЕНУЖНО?

Всю бд делали 7 человек на гитхабе. Но у одного из них седые волосы.
210 2378976
>>378970

>Ну типо епта с++, сделана японцами, не геями-кожевниками из эпла.


Полехче с таким заявлениями.
Gay-related immune deficiency (GRID) (sometimes informally called the gay plague or GRIDS, standing for Gay-related immune deficiency syndrome) was the original name for AIDS
211 2378979
>>378970
братишка,
если бд написана на джяббе - это не означает что ты должен переписывать своё приложение на джяббе
212 2378980
>>378970

> Griddb епта.


> GridDB is a NoSQL database which pursues high-speed and high-scalability and does not have a transaction function for the entire database like a relational database. However, transactions are supported in “container” units.


Ой, у них вместо ACID что-то другое непонятное. Эх, японцы. Ну для IoT наверное норм.

>>378976
Хм, а ведь действительно. Как KV могут быть GRID? Никак, очевидно.

>>378979
Так-то да, но руки-то чешутся. Если есть JVM, значит нужно писать в JVM. Зачем она просто так стоит? Непорядок.
213 2379010
>>378980

> Так-то да, но руки-то чешутся. Если есть JVM, значит нужно писать в JVM. Зачем она просто так стоит? Непорядок.


А если БД написана на C++, тоже руки чешутся писать бизнес-логику на плюсах?
214 2379037
>>379010
Так бизнес-логику и так все на плюсах пишут.
215 2379044
>>379037
На плюсах не пишут бизнес-логику, на них пишут платформы и среды, поверх которых уже на высокоуровневых языках пишут бизнес-логику.
216 2379065
>>379044
Нет, бизнес-логику, вроде того же перебора графа, очень часто пишут на плюсах/си. Как и транзакции всякие.
Ну и вообще термин "бизнес-логика" для ньюфагов, размытый и нихуя не значит, не используй особо его вне пиздаболии с менеджерами.
217 2379069
>>379065
У бизнес-логики вполне конкретное значение: описание бизнес-процессов предприятия, соответственно, есть привязка к предметной области. Это явно не те категории, которые должны относиться к разработке СУБД.
218 2379213
>>379069

> бизнес-процессов


Ты ввёл ещё одно определение, которое не имеет смысла и не определено. И ввёл его чтобы объяснить предыдущее определение без смысла. Ебать ты менеджер, хуле ты в этом треде забыл?

Вот рассчёт графа это бизнес-процесс? А ведь он буквально регулярно проводит рассчёты над устройствами, получая и создавая готовые данные, которые попадают в аналитику без модификаций. Просчёт интернет-мошенничества это бизнес-процесс? А это тоже через рассчёт графа происходит.
Блджаж, да я с десяток "бизнес-процессов" могут только на одном графе напердеть тебе.
219 2379473
>>379213
Данные тебе в этот граф боженька отсыпает?
220 2379477
Есть где-то описание апи для работы с постгрей? Для любого языка в целом
Точнее, что я хочу: подобие гуишной тулзы сделать для себя. В которой вкладки для постгри есть, редиса, тарантула и прочего что юзаю.
Затык на постгре. Для себя хочу управлять включением/выключением бд, время запросов, запросы, само описание таблиц, размеры и т.д. Короче объединить всякие тулзы в одну. Но мне не клиент нужен и не хочу системные pg_ctl вызывать.
Можете подсказать?
221 2379484
>>379477
Словарь данных?
https://www.postgresql.org/docs/current/catalogs.html
https://dataedo.com/kb/query/postgresql
Но там только инфа о таблицах и прочее, саму СУБД ты вряд ли выключишь без pg_ctl и подобного.
Screenshot from 2022-06-14 16-27-39.png42 Кб, 783x222
222 2379577
Пытаюсь установить SQLServer на Ubuntu 22.04 LTS, следую официальному гайду: https://docs.microsoft.com/en-us/sql/linux/quickstart-install-connect-ubuntu

Однако когда пытаюсь пробежать sudo apt-get install -y mssql-server, то получаю сообщение о том, что серверу понадобится libldap-2.4-2, хотя у меня установлена обновлённая версия libldap-2.5-0. Даунгрейднуться не получается, потому что libldap-2.4-2 в принципе не доступен для скачивания. Есть ли какой-то способ проинструктировать mssql-server обратиться к libldap-2.5-0? Если нет, то каковы мои альтернативы, чтобы таки завершить установку?
223 2379594
>>379577
docker
224 2379648
>>379473
Клиенты. Без бизнеслогики, чистые данные.
Ты говоришь про слой промежуточных серверов, которые не относятся к высокопроизводительным серверам с отдельными фичами и к серверам с бд. Ну да, там частенько используют высокоуровневые языки. Но не всегда, потому что без плюсов оптимизировать очень слошна.
225 2379827
>>379648

>Клиенты. Без бизнеслогики, чистые данные.


Волшебные клиенты по воздуху передают напрямую содержание памяти на своих машинах? И ты не менее волшебно их просто загружаешь прямо в память? Такую важную деталь, как откуда у них эта информация берётся, можно даже не упоминать.

>Ты говоришь про слой промежуточных серверов, которые не относятся к высокопроизводительным серверам с отдельными фичами и к серверам с бд.


У тебя от писания на крестах просто началась профессиональная деформация. Ты сидишь в треде, доменные языки которого разделены на два лагеря - человекочитаемый SQL и человекочитаемый JSON, и при этом заливаешь про отсутствие бизнес-логики как термина. Разработчикам постгреса наверно моча в голову ударила реализовывать и допиливать поддержку джейсонов в своём продукте, а разработчики монги просто захотели запилить индексы и джоины. Хотелки бизнеса здесь вообще ни причём.
226 2379898
ананусы сап
вкатился я в базы данных начав изучать sqlite
можете мне пояснить кое что из азов?

хочу разобраться не тупо смотря гигобайты видосов, а напрмиер создать базы данных сам, и чтобы уже с этой целью добавлять знания недостающие
подкините мне хороший туториал который вам помог в свое время?
227 2379900
>>379484
И правда, с libpq тоже нельзя стартом субд управлять.
228 2379913
Разбираюсь в функциях в постгре и вопрос возник. Я могу указать, что нужно возвращать все столбцы не перечисляя их? Т.е. я могу указать RETURNS SETOF "MyTable", но мне нужно вернуть две сджойненные таблицы. Могу указать RETURNS TABLE, но тогда нужно вручную указывать все столбцы, что утомительно и можно забыть поправить функцию, если добавиться столбец.
229 2379957
>>379827

>Волшебные клиенты по воздуху передают напрямую содержание памяти на своих машинах? И ты не менее волшебно их просто загружаешь прямо в память? Такую важную деталь, как откуда у них эта информация берётся, можно даже не упоминать.


Что это за бредятина нахуй? Информация с датчиков.
Перестань свои менеджерские маняфантазии о сайтиках применять на всё что угодно.

>У тебя от писания на крестах просто началась профессиональная деформация. Ты сидишь в треде, доменные языки которого разделены на два лагеря - человекочитаемый SQL и человекочитаемый JSON, и при этом заливаешь про отсутствие бизнес-логики как термина.


SQL это не бизнес логика. Почитай что такое SQL на досуге, манагер.
230 2380174
>>379957

>Что это за бредятина нахуй? Информация с датчиков.


Датчики тоже из воздуха дату собирают? Никаких протоколов и следования стандартам, да? И отправляют гигабайты несжатых данных прямиком из памяти.

>Перестань свои менеджерские маняфантазии о сайтиках применять на всё что угодно.


Пердолик что-то там о маняфантазиях рассказывает, лол.

>SQL это не бизнес логика.


Он существует исключительно из-за нужд бизнеса. Пердолики всё хотят запилить бинарного убийцу SQL, да всё никак не могут.
231 2380352
>>380174

>Датчики тоже из воздуха дату собирают? Никаких протоколов и следования стандартам, да? И отправляют гигабайты несжатых данных прямиком из памяти.


Да, просто байты отсылают. По udp/tcp. Если какой-то датчик отсылает вместо чистых бинарных данных какое-то говно в json - его нахуй меняют на нормальный. Ебать ты манагер, ты что, нафантазировал как датчики json отсылают?

>Пердолик что-то там о маняфантазиях рассказывает, лол.


Ух эти пердолики! Не то что высшая каста, манагеры!

>Он существует исключительно из-за нужд бизнеса.


Манагер, плиз. Он существует из-за легаси и согласованности данных, которая как раз и являются нуждой бизнеса.
Мелкого бизнеса, в основном, сосайтики там всякие твои, мелкие магазины. У крупного биза проблемы с SQL, из-за невозможности горизонтального масштабирования.

> Пердолики всё хотят запилить бинарного убийцу SQL, да всё никак не могут.


Убийцу SQL сделоли - CRDT. Манагеры уже переучиваются на бетховен и солидити, а ты всё аутируешь в SQL. Хотя могу тебя понять, SQL ламповый, а CRDT только в зайчатках. Вот бы сделали SQL CRDT.
232 2380650
Есть запрос вида select from (select from A ...) as SubA left join B on SubA.a = B.b
есть индекс по B.b. Для 25 записей пришедших из SubA дергается 25 раз индекс B.b (пик 1). Все ОК.
Но если выношу подзапрос в процедуру и получаю запрос вида select * from myPoc() as ProcA join B on ProcA.a = B.b
то на индекс кладется болт и строится хэштблица для всей присоеденяемой таблицы (пик 2), и запрос в 50 раз дольше на небольшой базе. Это не ОК. Есть мысли как разрулить?
233 2380756
>>380650
В оракле хинт leading или ordered с use_nl юзается, как в других базах хинты работают хз.
если вообще правильно понял вопрос, с разработкой процедур не сталкивался
234 2380810
>>380650
шо за софт на скринах?
235 2381181
>>380810
Гугл говорит, что это https://explain.dalibo.com/
236 2381261
>>381181
блин, оно для постгре.
а есть такое же красивое, только для мускула?
237 2381360
Меня продолжают унижать функции в постгре. Я могу сделать запрос select * from A join B, и оно мне вернет например
|id|fieldA|id|fieldB
но я не могу вернуть из функции
table(id integer, fieldA text, id integer, fieldB text)
ибо два столбца с именем id ни-ни, а если переименовать столбец, то это перепердоливать мапперы. Ну что за хуета?
238 2381367
>>381360
Перепердоливай говномапперы, делай нормально.
изображение.png993 Кб, 1283x720
239 2381425
Кто-нибудь может доступно объяснить чем отличается под подход Аймона от Кимбелла?

У одного 3NF, у другого просто называем справочники DIMENSION и точно так же джоиним.
240 2381426
>>380650
Если кому интересно, то дело в том, что планировщик, при использовании функции не может прикинуть количество возвращаемых из нее строк. Он решает (возможно константное значение заложено), что функция вернет 1к строк и решает, то лучше сделать seq scan на 20к строк, чем 1000 раз долбить индекс, что при таком раскладе вполне разумно.
Можно закостылить установив лимит
select * from func() limit N
В моем случае количесво мне известно, так как оно зависит от размера передаваемого в функцию массива. Но в общем случае видимо придется страдать.
d0e9ee9.jpg46 Кб, 1000x1000
241 2381524
Базач, есть потребность данные из db2 реплицировтаь в postgres.
Что можно использовать, помимо экспорта-импорта файлов?
db2 fdw не катит - используется несовместимая версия постгри.
Помоги, анон.
сам нихуя не базист
242 2381650
>>381524
linked server, либо любой etl инструмент
243 2382147
>>381426
>>380650
Оказывается в функция можно указать кол-во строк и стоимость для планировщика и ебать вола. Удивительно, что в бд треде не тех, кто шарит в бд нет
244 2383481
Нужна бдшка для телеграм бота, очень маленькая, пяток табличек, максимум записей - 500. Какую выбрать?
245 2383709
>>383481
sqlite, если наличие хранимок не принципиально.
246 2385791
а что такое хранимки?

алсо поясните нубу: могу я где-то скачать mysql бесплатно?

хочу вкатиться в базы данных, лет 10 назад верстал сайты, хочу вкатиться в IT на хуй пошел я , знаю
247 2385800
>>385791

> а что такое хранимки?


Хранимые процедуры. Это когда логика программы не в виде какого-то экзешника или скрипта, а прямо в базе данных.

> алсо поясните нубу: могу я где-то скачать mysql бесплатно?


https://dev.mysql.com/downloads/installer/

> хочу вкатиться в базы данных, лет 10 назад верстал сайты, хочу вкатиться в IT на хуй пошел я , знаю


Ну, вкатывайся, чо
248 2385895
>>385800
а может простыми словами пояснить, что значит прямо в базе данных? не понимаю , не могу представить

допустим файл с кодом который выполняет что-то когда его читают могу представить, а что значит прямо в программе невразумею
249 2385898
>>385895
Вот умеет СУБД как-то хранить таблицы, вьюхи и индексы в каких-то своих внутренних файлах БД. И так же она хранит в том или ином виде процедуры в виде кусков инструкций, которые сама СУБД умеет интерпретировать и исполнять, как это делают интерпретаторы некоторых языков программирования. Это может быть байт-код, исходники скриптов или что-то ещё, физически, конечно, всё хранится в файлах в бинарном виде. Ты пишешь команду CREATE PROCEDURE, прямо там же её исходник на понятном СУБД языке (к примеру PL/SQL в Oracle или T-SQL в MS SQL Server), она в свою очередь этот исходник парсит и где-то у себя сохраняет. В любой другой момент ты можешь вызвать эту процедуру, и она просто запустится и выполнится. Можно сравнить с макросами в Excel. На таких языках удобно работать со стандартными командами SELECT/INSERT/UPDATE/DELETE, ты просто их пишешь как обычные операторы языка, но в довесок к ним у тебя есть переменные, условия, циклы, вызов других процедур и прочие стандартные возможности языков программирования.
250 2386556
>>385898
спасибо тебе анон.
251 2390424
аноны сап
подскажите
скачал установил open server, пытаюсь в настрйоках включить чтобы появился phpmyadmin , настрйки - модули - mysql, но как только выбираю sql win10 - опен сервер не запускается

у меня 7ка если что. поясните плез как настроить ээто всё
252 2390751
>>390424
Спроси в каком-нибудь PHP-треде (или кто ещё там юзает подобный софт). Вряд ли проблема имеет хоть малейшее отношение к MySQL как таковому.
253 2391214
>>390751
оказалось все просто, у разных версий - разный дефолтный пароль.

алсо - для изучения базы данных а именно MySQL что лучше поставить? просто чистый MySQL с сайта мелкомягких или можно оставить опен сервер? какую самую позднюю версию можно накатить на win7 ? у меня заработал только с 5.6
254 2391224
>>336742 (OP)
В постгресе выбираю часть мыла до @. Возвращается что-то типа 'marie.sue'. Как мне сделать так, чтобы только первая буква конвертировалась в верхний регистр? initcap дает 'Marie.Sue'. Неужели нужно ебаться с конкатенацией?
255 2391689
>>391224
Да, ебаться с конкатенацией. Для такой специфической проблемы отдельную функцию решили не запиливать.
256 2391839
Всем доброго времени суток аноны повелители БД. Я как заплутавший стьюдент пришел за вашей помощью. В чем суть,
я пишу типичный веб сервис на REST архитектуре, у которой есть БД постгрес, и у неё есть несколько таблиц с UNIQUE столбцами.
И вот смотрите:
1. я шлю post запрос на запись данных в таблицу

2. в табличку данные записываются и в столбце primary key (просто к примеру если табличка пустая) я получаю 1

3. я шлю следующий post запрос на запись данных в таблицу, но уже с теми же данными что я слал до этого

4. естественно получаю от БД сообщение что данные нельзя записать и что они не уникальные

5. и вот тут начинается магия, я шлю теперь правильный (с новыми данными) post запрос на запись данных в таблицу, туда все записывается, но! в столбце с primary key теперь не 2 а 3

Нахуя он пишет первичный ключ 3 если есть всего лишь 2 строки, причем у одной из них 1, как постгрес перескочил с 2 на 3?
Вот хочу понять это я кривой код написал, или постгрес с табличками неправильно сделал. Если первое то не буду вас беспокоить и пойду к разрабам на том языке на котором свою каку накодил.

Был бы крайне признателен если поможете
257 2391844
>>391841 (Del)
Бля пчел объясни своими словами пж, это что значит, мне нужно добавлять ON CONFLICT или это не баг а фича и ничего в этом плохого нет?
image.png40 Кб, 787x231
258 2391905
>>391845 (Del)
Спасибо за то что навел в правильном направлении, сейчас покопался и понял что не обязательно делать все значения последовательным, они уникальны и соответствуют требованиям первичного ключа да и хуй с ними.
259 2391990
Здравствуйте!

Суть проблемы:
В СУБД (postgresql) есть таблица data. В этой таблице есть столбец address, в котором хранится json. Внутри json, среди значений, встречаются строки вида \u041e\u043f\u044b\u0442\u043d\u0430\u044f.

С извлечением этих строк проблем нет. Запрос типа:
select trim('"' from (address::json->'street')::text) as "StreeName" from data;
отрабатывает замечательно, но вот есть проблема с перекодированием этой строки в читабельный вид, т.е. чтобы вместо "\u041e\u043f\u044b\u0442\u043d\u0430\u044f" отображалось "Опытная".

Пробовал всякие encode|decode|convert_to|convert_from, но желамеого результата нет - или пустое значение или ошибка типа "неверный синтаксис для типа bytea".

Вопрос:
Скажите, пожалуйста, как правильно перекодировать юникод-строки в читабельный вид в постгресе?
260 2392017
>>392013 (Del)
Язык - sql.
Я не могу понять как нужно обработать значение
trim('"' from (address::json->'street')::text)
чтобы результатом select-запроса была читабельная запись.

Что-то типа:
select МАГИЯ(trim('"' from (address::json->'street')::text)) as "StreeName" from data;
261 2392224
К довольно сочному собесу надо нахватать хотя бы по верхам теории по следующей теме:

DWH: структуры отчетов, источников, хранение данных в DWH - слои, объекты, логика преобразования данных, показатели качества требований, модели и типы хранения данных и т.д.

Аноны, выручайте, посоветуйте ресурсы, по SQL я разъебу их, а по проектированию хранилища надо хотя бы сойти за не полного идиота.
262 2392481
господа аноны, помогите. В базах хуёво шарю, пилю пет проект. Надо агрегировать две коллекции, тренируюсь, но нихуя не выходит.
263 2392491
PostgreSQL
Как из Столбца 1 и Столбца 2 получить Результат?
Каждое значение в С1 повторяется строго два раза. Для каждого уникального С1 нужен результат вычитания соответствующей пары чисел в С2.
264 2392497
>>392491
Оконные функции.
265 2392498
>>392497
Енто я уже нагуглил.
Но что-то похожих примеров нет.
Короче, сделайте за меня, позязя)0)0))
266 2392526
>>392498
Не надо искать примеры, просто научись делать partition by C1, и в каждом окне считай разницу между first _value() и last_value().
267 2393826
Такая тема, мне нужно раз в неделю персистентно писать очень много данных в бд, а потом доставать их по ключу, это что-то вроде горячего кеша. Данные выглядят, как json'чики по 200кб.
Я пробовал постгрес, монгу и редис, примерно все одинаково плохо работают с записью объектов такого размера и получается заточены под хранения большого количества маленьких файликов. Редис только ещё и пытается вообще всё в памяти хранить и в итоге по оперативке быстро проседает.
Плохо работают - это упираются в CPU базы и в итоге запись длится часы. Я ещё думал, что может монга будет работать быстрее постгреса, так как ему нужно время на нарезку json'а на тосты, но оказывается нихуя, работают примерно одинаково.

Что ещё затестить? Удивлен, что оказывается задача "записать несколько гигов в виде json'ов средне-большого размера настолько неочевидная. Я уже думал, что может распределенную фс поднять и туда писать, прям реально файликами.
268 2393860
>>393834 (Del)
Я же сказал "хранить персистентно", это означает распределенность, устойчивость, фейловер и тд и тп.
269 2393914
>>393826
hadoop, не?
270 2394301
А можно как-то в postgres подписать case конструкцией as? Прохожу курс, в нем задание - достать общее количество продаж у продавца, и отдельный столбец - премия. Если продаж больше определенного числа, то там 'да', иначе 'нет'. Вот мне надо, чтобы case выводился как 'Премия'
271 2394305
>>394301
можно, я разрешаю
272 2394417
>>394301
А спрашивать то зачем? Попробуй сначала и ВНЕЗАПНО увидишь, что это работает.
273 2394474
>>394417
>>394305
Я бы не спрашивал, если бы не пробовал. У меня нет получилось.
274 2394616
>>394474
Тогда ты странный, отлично всё работает.

https://www.db-fiddle.com/f/qrWa1fowA5PbFs8A9knE6K/0
275 2394617
>>394616
забыл поменять кавычки для postgres:
https://www.db-fiddle.com/f/qrWa1fowA5PbFs8A9knE6K/1
276 2395961
суп

для изучения mysql и запросов что лучше ставить на комп - open server или просто скачивать и ставить mysql ?

сколько вообще по канону нужно времени чтобы научиться нормально понимать и писать запросы?

алсо может порекомендуете хороший курс?
278 2396202
>>396006 (Del)
спасибо тебе анон
я конечно же нихуя не понял но очень интересно

а зачем вообще всю эту систему ставить? для изучения в чем будет разница с просто sql и open server?
# OP 279 2396281
>>396168
Ок, если не забуду при перекате.
280 2397238
>>396006 (Del)
Нахера вообще что-то ставить, если есть dbfiddle? Ты ещё ему кубернетес порекомендуй
281 2397324
>>396212 (Del)
а я думал что mysql это и есть Та Самая база.
т.е. все ставят MSSQL а не MySQL?
282 2397339
>>397324
MSSQL ставят исключительно шарпобляди, потому что у них нет выбора. Все остальные используют PostgreSQL, ещё в легаси Oracle остался.
283 2397404
>>397339
а поясни мне азы плез. запутался.

есть SQL - это язык.
а PostgreSQL, MySQL, SQLite - это среда или интерфейс просто?

например в open server база данных релизована с графическим интерфейсом, т.е. можно прямо в таблице менять параметры, значения, названия и тп, без написания запросов для этого.

а по факту ( или наиболее часто ) в работе - это просто комнадная строка и запросы? как это выглядит визуально?
284 2397421
>>397404
SQL - это язык, у которого есть стандарт, но нет "эталонной" реализации, которую бы юзало большинство.
Постгресы и мускулы - это всё СУБД, т.е. движки для создания и управления БД. Для доступа к БД они все предоставляют поддержку SQL, но каждый из них добавляет свои расширения, которых в стандарте SQL нет.
Поддержка SQL для разработчиков приложений реализована через специальные библиотеки (драйверы), где ты на уровне обычного языка программирования пишешь SQL-запросы в виде строк, передаёшь их библиотеке, а они передают их СУБД, те их выполняют и возвращают ответы в виде таблиц, для программиста это будет что-то вроде готового массива значений. Также у СУБД обычно есть из коробки простые программы с консольным интерфейсом, где можно писать запросы, а они внутри юзают драйверы и просто выводят результат.
Ну и кроме консольных утилит есть сторонние приложения, которые делают то же, что и эти утилиты, но в виде удобного графического интерфейса, где да, как раз открываешь таблицы как эксель и меняешь данные, кликая мышкой, ну и ещё можно писать те же SQL-запросы в специальных полуконсольных-полуграфических режимах. Насчёт Open Server не знаю, хз что это, там либо юзается одно из таких приложений с графическим интерфейсом, либо какая-то своя тулза.
При написании приложений пользуются в первую очередь драйверами, консольные и графические утилиты нужны только для того, чтобы иногда заходить и смотреть данные в БД, сами приложения их не юзают, они работают исключительно через драйверы.
285 2397449
Анончики, я тут со странным вопросом

Есть одна амуриканская проприетарная программа, которая пишет данные в MS SQL базу данных. Эта база данных уже занимает 30гб. В ней есть одна таблица с миллиардами записей (буквально - данные туда летят чуть ли не каждую минуту, и накапливаются за года)

Так вот, эта закрытая программа работает с этими данными за микросекунды - нажал кнопочку и тут же получил за нужный период по нужному условию (при этом явно не вижу ничего под кеширование)

Ну вот, импортозамещение.. Делаю простенькие селект-запросы... Ничего сложнее простого селект-фром-вере...

Почему мои запросы выводящие ровно теже данные по тем же условиям выполняются за минуты... А в той программе мнговенно?

Меня тут больше для самообразования интересует - хочу разобраться в какую сторону копать чтобы тоже так делать.
286 2397798
>>397421
в open server там работа с базой данных через phpmyadmin
287 2397819
>>397449
Один хуй твоя программа запросы шлёт в базу, а не напрямую из ноосферы данные вытаскивает, они должны на стороне базы в истории храниться, вот откопай их и посмотри в чём прикол, вангую ты просто партиций дохуя смотришь.
288 2398009
>>397804 (Del)
спасибо. возьму с собой маску для плавания с трубкой

а что посоветуешь ? как учиться работой с базой данных сейчас?
чтобы актульаное и прикладное. я просто посмотрел web, всякие javascript, html css , php, и понял вдруг что мне очень нравится именно базы данных, я сука люблю структуры, порядок, логику, плыву в этой моче и кайфую

допустим хочу себе сделать себе базу данных клиентов, чтобы прямо в бою учиться и дело делать и мне пользу приносило, а не пет проекты дрочить.
289 2398011
>>397804 (Del)
алсо что такое сосональная работа?
290 2398089
удалил к хуям open server и mysql, ставлю postgreSQL и PGadmin
норм?
291 2398151
292 2398183
>>398146 (Del)
т.е. просто через sql shell? типа через командную строку?
293 2398186
>>398146 (Del)
да что такое соснали-то? как по анлийски будет?
294 2398187
>>398146 (Del)
соснали = консоли? )))
295 2398549
>>398431 (Del)
хочу разврата и потерять невинность
остаюсь
жду ответов
296 2398863
>>397804 (Del)
Что бля? Я тебя сам на лицо нассу щас. Только долбаёб будет пердолится в консоли, когда миллион сред для разработки. Консоль запускается в крайних случаях, когда нужно создать первого пользователя, проверить проблемный запрос, никто в чёрные целыми днями не смотрит.

мимо
297 2398869
>>398009
Если ты просто вебмакака, то тебе нужен только CRUD. Как аноны выше советовали ставишь докер и работаешь с ним. По структуре и логике это наверное скорее Data Governance, а работа с базами данных это часто говно и кастыли, потому-что заказчик хочет что-то специфическое, и ему поебать что это не соотвествует текущей модели данных. Почитай кабанчика с ОП пика. Пойми, сами по себе бд, в отрыве от конкретного проекта/приложения ценности не имеют.
298 2398918
>>398869
не, я не веб макака, я бы хотел проектировать БД,
структуры

скачаю докер ок.
299 2399010
>>398918
Тогда пиздуй читать, Кимбела, Аймона, data vault 2.0, анхоры, дата меш.
чел хули ты там собрался проектировать, если к бд подключиться не можешь
300 2399017
Что значат вопросительные знаки в запросе?

SELECT username FROM users WHERE username = ? and password = ?
301 2399020
>>399017
подстановка из кода приложения
302 2399022
>>399013 (Del)
Ебало этого любителя Дейта в мире nosql представили?
изображение.png40 Кб, 972x212
303 2399024
>>399019 (Del)
>>399020
Ладно, расширю вопрос
Что тут происходит?
304 2399027
>>399024
Стоп, сам сообразил. Оно в get как раз заканчивает запрос, подставляя всё в него. То есть, оно ищет в базе конкретные логин с паролем?
изображение.png48 Кб, 947x281
305 2399028
Я правильно понимаю, тут оно дропает базу, если она не пуста, а потом добавляет в неё запись админа со случайным паролем, которую нельзя перезаписать потому что юзернейм столбец в ней помечен как unique?
306 2399031
>>399029 (Del)
В get и вставляет же, не? То что ему пришло в функцию
307 2399039
>>399035 (Del)
Это я понял. Меня ситуация с конкретным куском кода интересует, >>399024 который
308 2399042
>>399029 (Del)
смеялись всей Big Data team
309 2399048
>>399042
Твоя биг дата хайпанула и исчезла.
310 2399095
>>399057 (Del)
Вот бы щас читать хабропарашу, не знаю что они там в своём курятнике кудахчут. Подумай сам, количество данных только растёт, место подешевело, и все хотят аналитику делать, не говоря уже о всяких нейронках и прочеему машинному обучению. Да оперативные бд никуда не делись, но все деньги интересные решение сейчас в аналитических решениях.
изображение.png7 Кб, 603x26
311 2399138
Сюда же можно SQL injection сделать, если я правильно понимаю?
312 2399142
>>399138
Смотря откуда берутся user и pass. Если напрямую с клиента и не экранируются, до да, легко.
313 2399148
>>399142
Да, они просто приходят. Ну, уже хоть что-то
314 2399495
Уважаемые, помогите новичку, который sql только на картинке видел и пока не разобрался с синтаксисом. Есть таблица А, в которой есть поля idA, relatedIdB и nameA, есть таблица B, в которой есть idB и nameB. Нужно сделать так, чтобы если nameА и nameB совпали, то в поле relatedIdB записалось idB этого элемента из таблицы B.
315 2399509
>>336742 (OP)
Как принято хранить глубокие древовидные структуры в БД? Херь вроде Монги тут вряд ли подойдет, при большой вложенности она начинает сосать. В РСУБД будет слишком много джойнов. Шо делать?
316 2399520
>>399509
Хранить в поле JSONB.
image.png100 Кб, 1810x405
317 2399545
Хм, че-то я тут потерялся малость, вот что смог сообразить:

1. WHERE x != 1 по идее должно бустануться обычным btree же? Оно работает на равенство и на больше/меньше, а на прямое неравенство? hash должен тащить то чно
2. Тут походу никакой индекс не поможет
3. btree/hash выручат
4. Возможно GIN? Не ебу, не юзал его никогда, btree точно не поможет
5. В идеале составной индекс нужен. Но просто индекс по b тоже ускорит запрос, просто меньше
318 2399699
>>399010
так блять вот и хочу научиться! зайти могу в базу, посмотрел уже sqlite, mysql, теперь postgre, понял что такое crud, сейчас пытаюсь понять в логику запросов
319 2399742
>>399621 (Del)
Да, уже разобрался, как селект написать.
Поиграйте со мной  Очень страшное кино 2 (2001).mp412,5 Мб, mp4,
1280x720, 1:37
320 2399824
накидайте актуалочки еще?
на каких версиях всяких postgres sqlов работаете?
может можете порекомендовать курсы какие-нибудь годные?
только не скилбоксы хуексы всякие
321 2399841
>>399545
Во втором случае можно упороться и создать индекс по выражению x+y. Работать будет, но очень не шибко. К примеру, если в запросе использовать не x+y, y+x, то такой индекс уже не будет использоваться
322 2400058
>>399824
Переезжаю на grinplum с MSSQL Володька, спасибо.

Курсы в шапке, специалист который. От него же ещё есть на рутрекере курс по оптимизации.
323 2400070
>>399545
1) Хороший вопрос. Индекс по x должен помочь
2) Тут индекс не поможет, если хотим ускорить вычисляемое и пишем сразу в таблицу
3) index(a,b)
4) Т.к. вначале тоже подстановка, то полнотекстовый
5) index(a,b)
Где я обосрался?
324 2400079
>>400070
На счёт второго зависит от базы у постоит есть такая штука для подобных ситуаций https://www.postgresql.org/docs/current/indexes-expressional.html
325 2400207
>>399545
откуда это? Есть теория от него почитать?
326 2400626
id->\”’)), (SELECT (CASE WHEN (SELECT 1)=1 THEN ‘SUCCESS’ ELSE (select exp(~(SELECT * FROM (select user())x))) END)) #

Что происходит в этом коде?
изображение.png11 Кб, 310x422
327 2400666
328 2400697
>>400626
Ладно, тогда просто спрошу что есть id->"')) внутри ORDER BY
329 2400762
аноны разминаю свои уёбищные знания в sql

есть уёбищная таблица, например с добавленными данными в виде 5 строк (из N столбцов каждая) , и я решил добавил к ней еще один столбец - например РАЗМЕР СИСЕК

как мне блин у каждой строки заполнить только этот столбец?
330 2400886
>>400762
Тупо через апдейт, не?
ALTER TABLE UYOBISHCHNAYA_TABLITSA ADD BOOBS_SIZE NUMBER(2);
UPDATE UYOBISHCHNAYA_TABLITSA SET BOOBS_SIZE = 0;

Ну или ALTER TABLE UYOBISHCHNAYA_TABLITSA ADD BOOBS_SIZE NUMBER(2) DEFAULT 0;
331 2401071
Может кому интересно будет, задания с собеса.
Что в первом ответите?
https://pastebin.com/bsyWEYU0
уёбищная таблица.jpg81 Кб, 570x201
332 2401119
>>400886
не пойму, или не получается

короче , вот таблица
там есть 4 заполненные мамаши или около того

я хочу добавить туда столбец размер сисек
пишу
ALTER TABLE уёбищная_таблица
ADD размер_сисек CHARACTER VARYING(20) NOT NULL;

получаю ошибку:

ERROR: ОШИБКА: столбец "размер_сисек" содержит значения NULL
SQL state: 23502

что я сделал не так?
333 2401146
>>401119
сделал NOT NULL DEFAULT 'Неизвестно';
и вроде получилось.

но как теперь его отдельно заполнить?
334 2401147
>>401119
В таблицу, где уже есть какие-то данные нельзя добавить NOT NULL столбец без значения по умолчанию. СУБД ведь не знает, какими данными инициализировать ячейки существующих записей, а NULL подставить не может, ведь ты ей запретил через NOT NULL. Либо дописываещь DEFAULT какое_нибудь_значение, либо добавляешь столбец без NOT NULL, устанавливаешь значения через UPDATE и в конце меняешь столбец на NOT NULL через ALTER TABLE уёбищная_таблица MODIFY размер_сисек NOT NULL;
335 2401161
>>401147
а как теперь этот столбец отдельно заполнить? чтобы не переписывать всю таблицу
336 2401174
>>401161
Так обычными апдейтами.
UPDATE уёбищная_таблица SET размер_сисиек размер_сисек = 'Неизвестно';
Это обновит значения всех столбцов размер_сисиек. Таблица целиком не перезапишется, перезапишутся только указанные в апдейте ячейки.
337 2401181
>>401174
не понимаю.
вот мне надо чтобы теперь в каждой строке в столбце размера сисек появилось значение.
чтоб у жирной мамаши 5, у мамы шака 3 и тд
какой командой это прописывается? логику не улавливаю
338 2401182
>>401181
UPDATE уёбищная_таблица SET размер_сисиек размер_сисек = '5' WHERE milf_id = 4;
UPDATE уёбищная_таблица SET размер_сисиек размер_сисек = '3' WHERE milf_id = 3;
и т.д.

Хотя если ты юзаешь какую-то гуёвую тулзу для работы с БД, там почти наверняка можно не писать команды вручную и в просмотре таблиц тупо отредактировать, как в экселе.
339 2401183
>>401182
pgadmin юзаю
да, можно тупо как в таблице, но я хотел именно узнать как прописать уёбищными ручками

анон, а зачем размер_сисек два раза писать?
340 2401185
>>401183
Это я проебался, когда копипастил. Надо только один раз, конечно.
341 2401409
>>401185
спасибо анон. теперь понял

а вот интересно - если милф там 1 000 000 , и например не нужно \ не хочу заполнять каждую и писать реальный размер_сисек
а хочу набросать рандомно эту таблицу, например с последовательностью 2345 которая заloopена?

можно это как-то реализовать?
типа размер_сисек = 2 where milf_id = 1, размер_сисек = 3 where milf_id = 2 и тп
а дальше что-то типа в логике n + 1 , чтобы оно само дальше добавилось
342 2401426
>>401409
Можешь в апдейте написать простую формулу по вычислению размера как остаток от деления от milf_id. Типа такого:
UPDATE уёбищная_таблица SET размер_сисиек = (((milf_id - 1) % 4) + 2)::CHARACTER;
343 2401545
>>401409
автоинкремент, если постгрес, то там можно вобще произвольный ряд задать
344 2402143
>>401545
типа сделать автоинкримент на колонку размер_сисек чтобы он сам заполнил? а как задать чтобы ряд числел бы ограниченный и повторяющийся?
image.png22 Кб, 634x261
345 2402159
Анон, куда копать?

Сам SQL Server рабочий (к другим базам нормально подключается), а вот к этой нет (при этом пробовал еще и с самого сервера, и по локальной сети с других компов - везде выдает эту ошибку)

База данных вроде как рабочая - я сделал ее копию через powershell. В нее идут запросы по ODBC, плюс программа пишет и читает из нее данные

Пользователь тоже имеет права (ну как минимум по ODBC создаются связи для пользователя - вообще пробовал и пользователя винды и пользователя SQL)

Ошибка не гуглится. В подробном тоже нифига не написано
346 2402701
есть ли какой-нибудь способ открыть рядом две уёбищные таблицы сразу?
типа чтобы визуально было понятно что с чем соединять
неудобно жутко, хоть на бумаге рисуй их
347 2402723
348 2402779
>>402723
нет, всмысле как например сижу я в фотошопе - могу две картинки открыть в двух окнах рядом

а в pgadmin - типа есть строка в которой вкладки с открытыми окнами, но не знаю можно ли их например просто открыть одновременно если монитор большой? чтобы каждый раз не тыкаться между вкладками

алсо еще вопрос - есть ли какая-то live reload\live update фича? чтобы каждый раз не кликать на refresh в дереве баз

как в каком-нить редакторе кода
349 2402855
>>402701
В Datagrip от jetbrains видел недавно такую фишку в нововведениях

Мимо
350 2403079
>>402779

>как в каком-нить редакторе кода


Мне вообще кажется что вся среда SQL застряла где-то в девяностых.

И вот эти деревянные редакторы времен ms-dos с одним активным окошком.
И сам синтаксис SQL который полностью просирает всяким модно-молодежным LINQ
Связи через допотопные библиотеки которые хуй знает сколько лет как устарели.....
351 2403642
>>403079
Мальчик, РСУБД это одна из самых зрелых технологий на рынке сейчас. Испытанная временем и миллионами человекочасов. Это пикрил 1.
Nosql это пик 2 - молодняк, лелеющий мечты переплюнуть Папку, но ему банально не хватает опыта и выдержки, максимум на что он способен - это перетянуть на себя одеяло в небольших кейсах.
352 2403958
>>403642
Есть ещё Спарк и соответственно датабрикс (дельта Лейк). Если смотреть не как замену реляционным базам а дополнение, то Там учтены все ошибки сиквела и есть возможность создавать продукты (контроль версией, тесты и вообще девопс)...
353 2403970
>>403958
И нужно это не для широкого применения, а всяким дата-аналитикам и другим пидорам, которые и экселю рады.
354 2403977
>>403079
Не могу определиться, то ли это троллинг тупостью, то ли зелень.

> И вот эти деревянные редакторы времен ms-dos с одним активным окошком.


Много редакторов видел? Или сделал вывод по одному посту на дваче? У меня даже ебаная встроенная консолька в IDE умеет во фреймы и анализ синтаксиса, что там специализированные редакторы.

> И сам синтаксис SQL который полностью просирает всяким модно-молодежным LINQ


Модные-молодёжные LINQ не умеют работать с базами данных напрямую и не умеют даже в UPDATE без ебли с нечитаемыми коллбеками.

> Связи через допотопные библиотеки которые хуй знает сколько лет как устарели.....


Мера устарелости - это возраст библиотек больше трёх лет, да? 50 лет прошло, дохуя технологий и языков взлетело и умерло, а SQL пережил их всех.
355 2403985
>>403970
Спарк это номер один фреймворк для биг даты. Даже создатели велосипедов из Гугла и Майкрософта переходят
356 2403991
>>403985

> биг даты


Вот я и говорю: дата-аналитики и другие пидоры.
357 2404007
>>403991
В
Р Я Д Ы
Е
М
Е
Н
Н
Ы
Е
358 2404017
>>404007
Очень пидорско звучит.
359 2404122
>>403642

>Nosql это пик 2


при чем тут вообще эта хуйня? Я про само SQL, а не его отдельных представителей

>>403977

> У меня даже ебаная встроенная консолька в IDE


Ну покажи IDE для SQL которая бы умела что-то кроме подстветки (например хотя бы проверку типа поля, а то заебало открывать структуру таблицы чтобы узнать что там в ячейке, число/текст или вообще дата)

>>403977

>а SQL пережил их всех.


Я и не говорил что нужно чем-то заменить.
Я говорил что оно не развивается. Там вон даже сишечка развивается, а ей сколько лет и она насколько проверена временем... А выходят новые стандарты, новые среды, новые инструменты...

То есть если сравнить как писался код на сишке в нулевые, и как он пишется сейчас - да оно несравнимо... (некоторые даже специально устраивали ретрочеленджи - писать код как деды в девяностые). Очень много удобных фич

А вот запросы на SQL как писались в нулевые, когда был бум развития (даже считай визуальные конструкторы появились типа Access), так до сих пор там и сидят

p.s. если что, у меня 33 уровень. Я считай уже дед, которому заебало каждую буковку писать в этаком блокноте вот уже больше 15 лет
360 2404220
>>404122
DataGrip от JetBrains вполне себе неплох. Единственный минус - не бесплатный
361 2404656
>>404122
Так запросы руками пишут только деды на дба, всё остальные с ормами работают или с пандасами/спарками.
362 2404787
>>404656
для любителей орм - отдельный котел между любителями ебаться в гудок и "тесты потом напишу"
орм нужна только для джун-мидло дебилов которые хотят накатать мвп без необходимости что бы он нормально работал

ух сука, аж трисет
363 2404809
>>404787
пчел, первая миграция и ты жидко серишь в штаны без орма
364 2404840
>>404797 (Del)
>>404809
А вот и петухонщики, не осилившие основы SQL.
365 2404881
>>404840
дед, таблетки прими
366 2404908
>>404840
они самые, анон

>>404797 (Del)
научитесь в инжиниринг бд что бы таких вопросов не возникало, тем более при твоей ситуации в вакууме тебя орм не спасет

>>404809
я прям вижу джанго-макаку после трехнедельных курсов с юдеми, где для вас mvc это просто три папочки в корне проекта а хайлоад - больше одного запроса в секунду
367 2404939
>>336742 (OP)
Вопрос немного низкоуровневый.

Как хранить таблицу, с данными произвольной длины - в виде файла или в памяти так, чтобы можно было дописывать и удалять данные оттуда?

Первое, что приходит в голову, это тупо выделить память для хранения данных, и писать туда их прямо:

>данные1 + данные2 + данные2 + ... и т. д.


а также определить максимальное число записей данніх, и сделать индекс вида:

>номер записи (фиксированное число бит) + (начало данных, фиксированное число бит) + длина данных (фиксированное число бит).


И записать этот индекс в отдельном блоке выделенной памяти,
или в отдельном файле.

Грузить в память - только индекс, а не сами данные, а данные уже - грузить по запросу.

Такая себе ебала. Но а шо если много таблиц надо?
368 2404953
>>404939
Использовать SQLite.
20160205100222fb8a394c357a490b08d5fc6b34a4c585.jpg65 Кб, 604x468
369 2405593
>>404908
>>404840
Пенсия, как делать миграции будете? Через dynamic SQL?
370 2405627
>>405593
Какой блять dynamic SQL? Хуйнул SQL-скрипт с нужными изменениями схемы с названием <следующий по порядку номер> + <номер задачи в джире для уникальности>, положил в специальную папку в проекте, тулза для миграции прошлась по названиям скриптов, увидела, что указанный скрипт не запускался, запустила, добавила запись в свою таблицу с историей, и всё заебись. Легко отслеживать историю изменений схемы, контролировать порядок наката миграций и отмести правки задним числом по хеш-суммам в таблице истории, чего зумерские ORM не умеют.
371 2405809
>>405593

>Пенсия, как делать миграции будете?


нахуя ее делать? Работает, не трожь. 20 лет ебашат базы.
Просто нормально надо было нормализовать базы при проектировании

Кстати, работал с одной американской прогой по управлению электроэнергией на уровне электростанций... Там там разрабы нихуя не дрочились, нужно новое поле или поменять тип - заебомшим новую таблицу, а старую оставим на память

Так что, мне маленькому тем более норм
372 2405971
>>405593
понятно что ты хотел сказать.
но вот парадокс: в твоем молодежном GO миграционный инструментарий далек от явовского и тоже весьма примитивный. Его просто не успели хорошо развить. Однако никто не орет.
373 2406047
>>404953
Тогда, надо как-то выдрать этот код,
https://github.com/mono/mono/tree/main/mcs/class/Mono.Data.Sqlite
и дополнить его .csproj и .sln файлами так, чтобы оно конпелировалось под .NET Framework 4.0
и компилировалось с помощью msbuild или Visual Studio 2010,
без пердолинга с компиляцией mono,
а то там хуй пойми чего содержится в бинарниках, которые вместе - занимают целый охуллиард байт.

Поможешь с этой хуйнёй?
1657879704712.jpg39 Кб, 400x564
374 2406055
>>404939
Почитай про использование страниц для хранения таблиц в БД.
А вообще советую ознакомиться с этой книгой. Много чего интересного почерпнешь про кишочки.
375 2406074
>>406055
...пока молодой-модный дата-инженер быстро клепает решения на современных фреймворках и поднимает зпшку в 3 раза за 2 года, ты будешь вникать в кишочки
376 2406078
>>406074
Не будешь вникать в кишочки - не пройдешь собесы и не апнешь зпшку. Очевидно же.
Или ты думал любому хую с горы дадут вакуху просто потому что он сказал "я юзал модные фреймворки, пук лол кек"
377 2406081
>>406078
а что вообще такое фреймворк в контексте базы данных?
378 2406085
>>406081
Он имел ввиду скорее всего приблуды типо spark / hadoop
379 2406097
>>406078
+
Проходил недавно собес на сеньку бекендера в одну большую рашкованскую компанию. Половина вопросов не по питону:
- Что будете делать если случайно удалили целый набор строк в Постгре?
- Что такое "план запроса" Постгри и как работает bitmap scan?
- Чем индексы Кликхауза отличаются от Постгри?
- Как происходит процесс записи в очереди в Реббите и что там за "маски"?
- Какие виды доставки есть в Кафке и какой для чего вы бы использовали?
380 2406100
>>406078
на собесах спрашивают одно и то же плюс-минус
а в те места, где дрючат по подкапотной хуйне, среднепчёлу не пройти
так что можно, конечно, положить жизнь на доскональное изучение кишков. но есть и другой путь...
381 2406222
>>405971
ты о каком молодежном ГО говоришь? вопрос про миграции в треде задали уже раза два-три в ответ на мой пост и одно я могу гарантировать почти точно - это выпускники Яндекс практикума написавшие хелловорд на Джанго и считающие что sql это еще один язык программирования
Figure-21000x610.png110 Кб, 1000x610
382 2407555
Давайте окончательно закроем вопрос про ПАРТИЦИИ или СЕКЦИИ, если угодно носителям настоящего русского языка

Откуда взялось мнение, что их вообще нужно делать?
Разве всевозможные стратегии index merge (я про mysql) не должны покрывать все ситуации, когда на практике часто используют партиции ?

Что почитать об этом уровня Кнута или К. Дейта ?
383 2407751
Насколько хорошо плохо если приложение динамически создает собственные базы?(create database).

Допустим у вас SaaS платформа типа wix где чел покупает и котонизирует себе сайт, и мы ему его в виде отдельной базы создаем?
384 2407758
>>407751
Раньше были шаред хостинги, там был один сервер и одна дб, и для всех создавали директорию и базу данных, потом через анальную дыру на одном из сайтов (которых было миллион) залазили и рутали сервак.
Сейчас может и актуально для такого мусорного говна, в соглашении там прописать - если вас въебут, мы ни при чём.
385 2407764
>>407758

Не понял как это связано. Я говорю просто с точки зрения структуры. А так своя у юзера ДБ или нет он может даже не знать. Прямой доступ логин/пароль не дается никому
386 2407773
>>407764
Если сейчас есть средства и ты уверен, что не въебут весь сервак, то делай. Тогда без такой уверенности делали и норм было.
Можешь даже нанять специальных людей, которые въебут и посоветуют, как настроить чтобы такое не повторилось.
image.png78 Кб, 250x250
387 2409611
>>405809

>нахуя ее делать?

388 2409613
>>405593
Это либо шизанутые пенсионеры на пхп либо гобляди, вот тут https://2ch.hk/pr/res/2286748.html (М) недавно люто порвались как раз на тему орм и миграций, визжали что НИНУЖНО
389 2409697
>>409613
лол, почитал, какого-то дебила порвало с >сырых sql
несите следующего
390 2409733
>>405809

>нужно новое поле или поменять тип - заебомшим новую таблицу, а старую оставим на память



Всегда так делаю, а вы нет чтоле?

Джанга, кстати, охуенная! Пока хейтерки пердолятся с шаблонизаторами шаблонизаторов, мы уже все выкатили и гэпнулись на х5.

мимо дед скуф
391 2409977
>>409697
Сырые sql - признак дремучего легаси или не шибко смышленых мартых на проекте

Я вот не боюсь сырых sql, не боюсь коннектиться к постгре напрямую и вертеть ее сырыми запросами. Но только блять в 99 случаях из 100 я заюзаю для этого pgadmin как и любой белый человек. Смекаешь?
392 2410076
>>409977

>Сырые sql - признак дремучего легаси или не шибко смышленых мартых на проекте



это настолько абсурдное утверждение, что хорошим, схожего уровня контраргументом будет просто насрать на стол, но тогда получится тавтология.
В ходе всей этой дискуссии я не получил ни один аргумент за орм на серьезный хайлоад проектах за исключением
1)Макакам сложно в sql/api/ижесними
2)Макаки не могут в миграции
3)Макак так научили на курсах
4)Манагерские макаки экономят на БДА и разрабах БД

Ты несешь ту же ересь - при чем тут вообще pgadmin?
393 2410157
>>410076
аргументов в пользу сырого sql мы тоже пока не услышали

мимо
394 2410159
>>410157
Как и аргументов против сырого sql.

мимо
395 2410277
>>409977
поясни нубу, что значит сырые SQL ?
396 2410285
>>410277
В зумерских ORM не пишешь SQL-запросы напрямую, ты вместо этого скармливаешь библиотеке готовые объекты, а она одним ей ведомым образом генерирует для неё SQL-запросы, глядя, какие у сущности поля и какие у них типы. Когда пишешь как нормальные люди SQL-запросы, это и есть сырые SQL, они же native queries.
397 2410313
>>410285
что есть зумерская ORM и в какой среде надо писать нормальные SQL запросы?
398 2410331
>>410313

> что есть зумерская ORM


ORM - это принципиально зумерское явление, поэтому, логично, все ORM зумерские.

> в какой среде надо писать нормальные SQL запросы


В любой.
399 2410353
>>409977
Несмышленные мартыхи это может быть но редко. Наоборот, это очень ушлые и хитрозадые мартышки оптимизирующие свою job security. Потому что никто в здравом уме не полезет поддерживать этот идиотский ворох из конкатенаций, шаблончиков, ФОРМАТОВ. Если Кабан Кабаныч спросит «а почему так, СЫЧАЕВ?», Сычаев начнет бубнить под нос что-то невнятное про хипстеров (что мы и зоонаблюдаем в треде).
400 2410370
>>410353

> job security


От кого? От тех немногих шизиков, не осиливших SQL?

> Если Кабан Кабаныч спросит «а почему так, СЫЧАЕВ?»


Какой блять кабан, он что, твой код ревьюить будет?
401 2410380
>>410076
Но 90% проектов вообще никакой не хайлоад.
Орм и оболочки поверх них - топовая вещь для прототипирования.
При нормальной разработке они никак не мешают миграциям.
Ну и если подкапотное поведение орм тебе учить не хочется - еще есть статические билдеры sql с генерацией кода.
>>410331

>ORM - это принципиально зумерское явление


хибер всего лишь вдвое младше оракла. ОРМ в продакшене уже больше 20 лет.
402 2410383
>>410370
Что ты там бубнишь, Скуфяев? Откуда я знаю от кого ты городишь жоп сесурити. Это к тебе вопрос.
403 2410384
>>410370
К кабану придет уже третий разработчик с жалобой на код Сычева, написанный на голом sql, потому что другие разработчики не хотят сами руками писать маппинг между табличками и кодом. И особенно не хотят читать десятки тысяч строк такого маппинга, написанного сычевым.
404 2410385
>>410331
эээ pgadmin это зумерская ORM ?
405 2410391
>>410384
А ещё они могут прийти к кабану с жалобой на говнокод Сычёва в логике программы и потребовать юзать no-code разработку с программированием мышкой. Это ничем не отличается нежелания отдельных шизиков учить SQL.
406 2410392
>>410391

>учить SQL


Спокойно, пыхомакак, спокойно.
407 2410394
>>410392
Слит.
408 2410395
>>410391
Чтобы пользоваться orm на продвинутом уровне ты должен хорошо знать sql. Плюс orm задает тебе рамки не использовать всякие антипаттерны типа вьюх или логики в бд во всяких хранимках.
409 2410396
>>410394
Пыхатрон, спокуха! SQL выучил?
410 2410397
ебать петухонщики повылазили после курсов по джанге. 1 сентября всё закончится.
411 2410402
>>410380
ты прав, для прототипирования - ок, для низконагруженного или индюшачьего приложения - тоже ок, да я сам использовал сиквелмодел для своего бота

но буквально в том году - довольно урча команда разрабов принесла мне сервис с 10k rps 300k dau и какими-то неистовыми инсертами с обращением к нашим субд c ебучей алхимией и с предъявами что наш сервис на слишком слабом железе что бы переваривать это богоподобное творение.
То что они сделали говно с точки зрения
1)Архитектуры кода
2)Оптимизации
3)Интеграции

Потому что
1) ORM на больших проектах - это легаси, костыль. Оно рвет вообще всю структуру прекрасного ооп на мелкие куски.
2)Никто не хочет учить как это работает под капотом, оно и не нужно - хорошие оптимизированные приложения будет писать человек который может в оптимизацию запросов, в лучшем случае часть логики может даже перенести на субд
3)ORM - это явно бутылочное горлышко
412 2410404
>>410402
Классическая история про то как скуфидон не осилил модный хипстерский фреймворк из нулевых-х и переписал все на перл. Ебало представили?
413 2410406
>>410404

> пуксреньк


А аргументировано и по пунктам слабо?
414 2410412
>>410402

>10k rps 300k dau и какими-то неистовыми инсертами с обращением к нашим субд c ебучей алхимией


показатель, успешности орм, что сервис дошел до таких нагрузок.
Вполне реально переписать только 20% критичных к нагрузке методов, причем не на голый sql а на какую-нибудь легкую оболочку, как минимум защищающую от инъекций.
И если ты не гугель все эти ваши большие rpm решаются кешом.

>в лучшем случае часть логики может даже перенести на субд


лол, привет тестам и соответственно всей современной разработке с агилом
и опять же жоб-секурити, как выше сказали.
Заебешься искать нормального человека, кто сможет поддерживать логику в бд.
image.png18 Кб, 300x190
415 2410546
>>410402

>прекрасного ооп

416 2410586
>>410353

>job security


Твой job это blowjob
417 2410607
>>410546
Он там еще и на алхимию ссылается, а значит наворачивает ООП в петухоне. Ебало представили?
418 2410859
>>410402
Чел причём тут орм, если у тебя бд как хлебушек работает. Если у тебя уловного индекса нет на таблицы, тебе sql не поможет. Орм позволяет в 90% случаев реализовать тот же функционал, но без легаси sql кода? который хуево портируется и рефакторится. От нагрузки начинает рваться не потому-что орм, а потому-что датамодель хуевая\бд не оптимизирована под запросы\сами кейсы запросов не проработаны.
419 2410973
Анон, ходил на собеседование стартап, и в бд нет ни индексов, ни связей между таблицами. таблиц порядка +-100. При вопросе что это такое, сказали что так и должно быть. Это была проверка на мою реакцию, или они рили там все пизданутые на голову? ах да, и ацесс токен они так же хранят в бд
420 2410981
>>410973

>стартап


Очевидно, проектировал систему поридж, который пользовался только монгой
421 2411022
>>410973
Зависит от того что за бд. В аналитике это обычное дело, индексы это слишком дорого а в пределе и вовсе невозможно на больших данных.

Но я встречал в яшке оторванные констрейнты. При чем в задачах где целостность была важна, намного важнее производительности. Чисто потому что челик был долбаеб.
20160205100222fb8a394c357a490b08d5fc6b34a4c585.jpg65 Кб, 604x468
422 2411046
>>410973
Чел тебе там поди NOSQL показали
423 2411061
>>410973
Небось все таблицы создаются через зумерские ORM, которую они не осилили сконфигурировать так, чтобы она генерировала индексы и констреинты.
изображение.png292 Кб, 500x395
424 2411064
425 2411069
>>411064
Таблетки тоже создаются через зумерские ORM.
Зумеры изобрели золотой молоток.
426 2411098
>>411061
yii макаки
427 2411312
>>410859
как круто ты продиагностировал мои бд, майн респектулен, а можешь подробнее немного об индексах рассказать - что это такое и с чем едят, я же, больше пяти лет проработав дба до этого, первый раз о них слышу от выпускника Яндекс практикума
и что ты вкладываешь в понятие легаси? это сильное утверждение, которое надо чем-то подкрепить, да и прочую чушь
428 2411376
>>411312
Как же я проиграл. Оказывается это ссаный ДБА рассказывает разрабам как правильно писать код. Шел бы бэкапами занялся, Скуфидот.
429 2411535
>>411376
я был дба еще до того как ты узнал что такое базы данных, поридж
в разработке уже больше 10 лет и такие олигофрены, любители обмазаться либами для умножения двух чисел, жидко обсираются на собесах
430 2411560
>>410973
Какой "БД"?

Монго?
Кликхауз?
Редис?
скуфидон.mp4507 Кб, mp4,
336x442, 0:03
431 2411645
>>411535
Аццкей одмен, спакухо!))))
432 2411931
>>411645
откуда этот мемес "да не трясись ты?"

алсо вопрос
какова структура запроса вообще \ логика ? есть ли где-нить размернутая схема нарисованная?

например простого
SELECT [ тут что? таблица, база данных, результат запроса, что еще?] FROM [ тут что может быть ?]

какая у сложного?
433 2411938
>>411645
Дон Скуфидон
434 2412082
>>411931
https://docs.microsoft. com/en-us/sql/t-sql/queries/select-transact-sql?view=sql-server-ver16
435 2412147
>>411312
что тебе не позволяет сделать орм, дедуль?
436 2412653
Чёт я не вкуриваю синтаксис запросов one-to-many в постгресе. Допустим есть условный профиль, у него может быть множество постов. Всё там по ключам в порядке и для нахождения всех постов достаточно айди профиля. Вот только как это реализовать в одном запросе, чтобы на выходе получить структуру типа IProfile { id: number, posts: [] }?
437 2413695
>>412653
Нет такого синтаксиса, базы данных не знают ни о каких one-to-many, они умеют только джойны, а джойнам неважно, какую идею ты в них закладываешь, они тупо объединят записи по внешнему ключу. Забросить одним запросом из БД можно только один набор строк, и ты можешь в своём примере запросить посты по id профиля, если у тебя в таблице постов хранится id профиля. Если твоей структуре не важны данные самого профиля, ты просто складываешь посты в полей posts, а в поле id устанавливаешь id профиля, по которому запрашиваешь посты. Хотя это излишне, в posts и так каждая запись содержит id профиля.
Если нужен не только id профиля, но и, к примеру, имя и логин, у тебя два варианта: либо делать ещё один запрос к таблице профилей, либо в том же запросе сделать джойн с профилями, и у тебя в ответе от базы будет набор строк с постами, но рядом с каждым постом будет дублироваться инфа о профиле, и уже на уровне приложения придётся их отсекать и раскладывать по разным полям структуры. И это ещё вопрос, что будет работать быстрее. Профили, например, часто кешируют и лишний раз в базу за ними не лезут.
438 2414084
аноначе пытаюсь разораться в foreign key, не могу найти как простую вещь сделать - допустим 2 таблицы, типа заказы и клиенты. на одно поле во второй таблице есть внешний ключ

так вот при заполнении строк второй таблицы что мне вводить в это поле с внешним ключем ? цифру?

т.е. этот внешний ключ для чего-то нужен вообще при заполнении? ( по смыслу конечно же понимаю для чего он, но в плане удобвства что он дает ?)
439 2414089
>>414084
id той сущности, на таблицу которой ссылается ключ
440 2414108
>>414084
Он дает INTEGRITY связанных таблиц, пнятенько?
441 2414215
>>414108
не,я хуево объяснил что хочу

короче есть две таблицы
в одной рок группы и есть там колонка группа_id, в другой рок альбомы и тоже колонка группа_id

например я уже заполнил таблицу - рок группы, у каждой группы есть номер теперь. например металлика это 1, хуяллика 2, и мастер хуяллики это 3.

и теперь заполняю таблицы рок альбомы: и там тоже есть колонка группа_id, собстна мне вместо альбома создавая строки писать для колонки группа_id что? название группы или просто номер из таблицы?
442 2414216
>>414215
быстрофикс
*мне в строке вместо названия группы писать ее номер из предыдущей таблицы или писать буквенно опять название ?
443 2414218
>>414215
Номер, конечно. В этом вся суть реляций и нормализации.
444 2414240
>>414218
но если групп 150 или 1500 ? вбивающий данные не запомнит ведь все 1500
445 2414242
Можно ли перенести в реляционную субд из csv колонку, значение в которогой массив строк?
Пример - ['Drama', 'Fantasy', 'Suspense'], жанры фильмов. Пробовал varchar[], и просто varchar, при копировании говорит что значение не валидно
446 2414255
>>414240
Бля, чел, прочти какую-то начальную книгу.
>>414242
Это many-to-many, делаешь отдельную табличку с жанрами и отдельную табличку кинцо айди-жанр айди.
447 2414270
>>414255
да заебал, расскажи что сделать

а потом прочту книгу
448 2414275
>>414270

> а потом прочту книгу


Нет блять, сейчас.
449 2414276
>>414270
А что тебе надо сделать-то?
Если импортировать какой-то датасет, то вставляешь праймери запись и получаешь её ключ, потом вставляешь форейгны с ней.
Если как макака вручную, то получаешь все праймери и даешь макаке форму, она вводит значение и отправляет на бек, там уже вставляется.
Прям вручную в базу никто не вставляет.
Теперь пиздуй читать книгу.
450 2414307
>>414276
ну я хотел понять как работает фича с foreign key
потом задумался а как добавляюстя данные в таблицу с ним если их дохуя.
451 2414379
>>414242
>>414255
За constraint и схему спасибо.

Насколько нормальная практика хранить перечисление строк в одной записи? Допустим я этот массив строк буду хранить в genres_tags, а в орм просто фильтровать, хотя пока хз каким запросом.

Кому не в падлу - оцените схему данных. У меня основная логика в том, чтобы выводить в шаблон теги с помощью <a></a>, и при нажатии на тег редиректить на ресурс с поиском, где выполняется запрос. Запрос, разумеется, я ещё не написал
1.png91 Кб, 928x1009
452 2414380
>>414379
Схема отвалилась
453 2414386
>>414379

> Насколько нормальная практика хранить перечисление строк в одной записи


Хуевая практика - это нинужный полнотекстовый поиск + потом ебля, если тебе потом надо добавить-убрать что-то.
454 2414392
>>414386

А как можно сделать если значение в csv хранится как comma separated list (of genres) ?

Посмотрел кучу датасетов на Kaggle, там у всех таблиц жанры либо как list of string, либо просто как перечисление строк через запятую.
455 2414395
>>414380
что это за програ с которой скрин?
456 2414400
>>414392
Потому что цсв это дата эксчейндж, там нет нормализаций.
457 2414402
>>414395
pgAdmin 4
458 2414404
>>414400
Надо где-то было взять готовые собранные данные
459 2414411
>>414404
Они уже собранные, тебе надо просто правильно их импортировать, очевидно же.
460 2414414
>>414411
Я ни разу не видел датасета, где были бы все нужные мне колонки, так что пришлось данные брать с разных датасетов и писать несколько таблиц, связывая их Many-to-Many.
>>414255
Ахуенный constraint ты мне подсказал. Проверил на join, запросы работают как мне и нужно было
image.png69 Кб, 1099x821
461 2414871
Сап. Хочу вкатиться в аналитико-макакинг, работать с данными. Освоил postgresql, практиковался на базе northwind. Проблема в том, что у меня нет ни малейшего представления о том, как работают с SQL в коммерции.
Мне интересно, как данные взаимодействия пользователя с приложением попадают в базу данных, как сделать так, чтобы они туда попадали, как соединить сайт/приложение с базой данных и т.д, но я не могу найти нормальных книг/ресурсов для таких зелёных как я. Решил почитать книгу с ОП-поста, но там на первых страницах уже непонятная мне информация и названия(прикреплен скрин) и хочу найти что-нибудь попроще для понимания глобальной картины КАК работать с БД на практике.
Стоит ли почитать К. Дж. Дейт. Введение в системы баз данных из оп-поста?
помоги, анонче
462 2414878
>>414871

> Мне интересно, как данные взаимодействия пользователя с приложением попадают в базу данных, как сделать так, чтобы они туда попадали, как соединить сайт/приложение с базой данных и т.д


Если ты идёшь в аналитики, то и не будешь знать, т.к. этим занимаются программисты. Всё, что тебе остаётся - спрашивать у них, какие таблицы смотреть.
463 2414892
>>414878
Как минимум я хочу понять, как это работает. Я сейчас в pgadmin умею создать только подключение к БД и писать запросы, остальное для меня не понятно. + не думаю, что кабану нужен будет АНАЛитик на фуллтайм, который умеет только чистить данные вилкой.
464 2415191
аноны, корешь работает на фирме одной и у них там все через 1С
я могу сидеть в ней с его компа когда она работает он на удаленке

хочу посмотреть как у них устроена база данных и кое-что узнать
типа сделать пару запросов

что для этого мне понадобится?
465 2415194
>>415191
Сделать пару транзакций, а кореша на бутылку?
466 2415203
>>415194
да не
хочу увидеть как выглядит настоящая рабочая база , сколько там таблиц и как они связаны чтобы иметь представление

я вроде тоже как анон сверху поучился на northwind от инженера спока, но она маленькая и простая, хочу хардкор но чтобы не перекрыться сразу
467 2415348
>>415203
говно идея, 1с хранит свои базы в ебанутой стрктуре, с кучей профиксов в названиях, ты нихуя полезного там не увидешь.
468 2415433
Значит, MySQL никто не использует, кроме вкатунов с лабами? В реальности у всех постгрес и проприетарные ораклы?
469 2415474
>>415433
используют
470 2415500
>>415348
ладно уж храни свои секреты

а где можно глянуть на настоящую рабочую базу?
471 2415509
>>415191
Установить к себе 1С:Предприятие, подключиться к их информационной базе и запускать запросы через интерфейс.
Ну или подключаться напрямую и лезть в эту канализацию: https://its.1c.ru/db/metod8dev/content/1798/hdoc
>>415500
На рабоче, очевидно. В открытом доступе даже опенсорсные проекты обычно не держат реальные данные так, чтобы можно было подключиться и что-то селектнуть, это небезопасно и создаёт лишнюю нагрузку.
472 2415539
>>415433
Используют. В качестве базы для небольших сайтов она неплоха, особенно для макак, которые используют cms-ки и не хотят запариваться с настройками СУБД (построю нужно таки тюнить)
1.png71 Кб, 871x912
473 2415694
Анон с БД по аниме.
Сейчас получилась такая таблица, связи вообще убрал, т.к. как без title во второй таблице матчились не корректные данные - год выхода, теги и т.д.

Попробовал на такой бд разные джоины, например

SELECT
a.title_en,
a.show_type,
ri.*
FROM database_anime as a
JOIN database_releaseinfo as ri
ON a.title_en = ri.title_en
WHERE ri.tags SIMILAR TO '%(Shounen)%'
AND ri.end_year IS NOT null


Вроде все работает, но мне кажется это какая-то хуйня, т.к. title_en повторяется в обоих таблицах, т.е. я фактически храню одинаковые записи в двух разных таблицах. Просто проблема в том, что эта таблицы на основе двух разных датасетов
474 2415845
>>410395

> антипаттерны типа вьюх


Почему?
475 2416053
>>415694
запрос не смотрел. группируй по id, уберутся повторы
476 2416094
>>415694
вообще нихрена не понятно что ты хочешь

убери title_en из одной таблицы и все
и как тебе коснтрейты мешали данные джойнить? чет ты не то куришь
477 2416301
>>416094
Ага я походу какую-то хуйню сделать пытался.

Но title_en я убрать все таки не могу, потому что тогда не понятно, к какому title будуту относится тэги из второй таблицы. Если я добавлю связи по id т и удалю title_en, то субд просто приклеит к сущности с id = 1 из основной таблицы рандомные теги где id = 1.

Я сдела как подсказал анон выше (>>414414) и даже написал, что все ахуенно. И так было до той поры, пока я не заметил что при запросе по title = 'Cowboy Bebop' джоинится release year: 2021
478 2416348
>>413695
То есть или эндпоинты хуярить на каждый пук и склеивать их на клиенте или мутить цепочки запросов на сервере?
479 2416352
>>416301
group by id блэд говорю
480 2416475
>>415500
На самом деле учебные базы у них довольно неплохие, проблема не в самой базе, а в том что ты не знаещь что с ней делать. На этих базах можно тренировать довольно близкие к реальным кейсы.

Вроде северный ветер старая, у них ещё AdventureWorks есть
481 2416478
>>416348
Если у тебя сервер тупо для круда и хранения данных, можешь сделать на сервере билдер запросов и обмазать каким-нибудь GraphQL. Но вообще да, если у тебя не круд и не публичное API, мутить по эндпоинту на сервере на каждое допустимое действие - основа безопасности, чтобы юзер мог вытащить только то, что ему разрешил администратор для тех или иных действий.
482 2416523
>>416301
Вот я тебе накидал примерчик импорта денормализированного csv и использование many-to-many.
https://ideone.com/OOz1ow
Давненько не писал на питоне, лол.
483 2416775
>>416301
ты джойнишь эти таблицы по их первичному что ли?У тебя совсем фляга свистит?
определи какой-то фк в таблице

господи, посмотел на твой первоначальный вопрос

тебе советовали сделать многие-ко-многим, а ты какую-то хуйню наворотил абсолютно бессмысленную, просто кровь из глаз

у тебя цель какая? хранить информацию о анимах и их жанрах?

какой смысл такого деления на таблицы?

Нахера ты хранишь список жанров в текстовом поле?

запили таблицу с тайтлами и со всей информацией о них, потом сделай справочник с жанрами и связывай их через линковочную таблицу, можешь еще на остальные поля типа эйджа, шоу тайпа вынести в справочники мелкие и все
484 2421876
Памахите

Есть набор записей (timestamp, value) по сути активность чего-то

Нужно вывести промежутки активности когда value > 0

date, start_time - end_time, sum(value)
485 2421885
>>421876
Чую, что будет как-то через жопу.
486 2421953
>>421885
Если бы был какой-то фиксированный интервал, то было бы наверно проще
487 2421959
>>421876
Оконные функции.
488 2421980
>>421959
А разве там не нужно 2 записи timestamp start/end?
Можно простой пример?
489 2422129
>>421980
>>421959
Кажется не оч тема. У меня нет четкого интервала.

А там, если правильно понял, мы берем мин/макс значения времени создания текущих записей и на этой основе с каким-то интервалом создаем набор значений.

И дальше джойним сюда то что нужно/отфильтровываем
490 2422177
>>421876
если я правильно понял очевидные оконные функции, берешь соседнии в качестве nextValue и считаешь разницу.
491 2422207
>>422177
Пчел, а ниже тыне читал посты? Они не верны?
492 2423015
>>422207
Ну ёбана, с начала фильтруешь все 0, потом смотришь подряд ли идут цифры, если подряд закрашиывешь.
Я что за интернет плачу чтоб считать читать чужые посты?
493 2423016
>>421876
выгрузи семпл, записей 200, а то щото мамку ебал в ручную заполнять а в голове решить не могу.
494 2423203
>>423016

> ебал в ручную заполнять


Достойные специалисты в треде

generate_series(timestamp '2020-01-01, timestamp '2022-01-08' , interval '1 min') + random() * interval '5 min';
495 2423213
>>423015

> смотришь подряд ли идут цифры


Как именно смотришь? Когда понимаешь что интервал закончился?

Вот я начал какать утром в 9:05, потом залипал в телефон, в 9:10 еще чуть выдавил и в 9:15 еще
Сколько я какаль? 9:05-9:15

Если покакаль 2 раза за минуту это одно событие, но в бд 2 записи, если что
496 2423221
>>423213
Вернее, такой вариант будет правильнее:

Начал какать в 9:05, продолжил 9:06 и 07, 08 - раз в минуту выдавливал. Потом залипал в телефоне 5 минут и выдавил еще раз в 9:13

Пусть будет что если есть событие хоть раз в минуту, то это часть интервала

- 9:05-9:08
- 9:13
498 2423244
>>423235
Или даже так
500 2423557
Блэт, а как заполнить все строчки како-либо таблицы согласно условию? Вот как мне нужно обновить все записи:

JЕсли Cуществует запись ENVIRON с условиями:

STORE.ROLLOUT_ENV= ENVIRON.NAME
И ENVIRON.LVL <= CURRENT_LVL

Тогда
STORE.USED = 1

Иначе
STORE.USED = 0


Тут надо как-то апдейтиться из джойна? Я могу конечно выбрать все записи из таблицы с помощью go и потом итерироваться по ним через for но это уебанство, ндао бы за 1 sql-запрос это порешать
501 2423605
>>423557
Ну апдейтишь с джойном и там через case вибыраешь значение.
# OP 502 2424143
ПЕРЕКАТ >>2424142 (OP)
ПЕРЕКАТ >>2424142 (OP)
ПЕРЕКАТ >>2424142 (OP)
ПЕРЕКАТ >>2424142 (OP)
ПЕРЕКАТ >>2424142 (OP)
ПЕРЕКАТ >>2424142 (OP)
503 2435417
>>336742 (OP)
Есть ли какая-то IDE для MySQL с урезанным функционалом для новичков чтобы могла наглядно строить таблички или все эти связи между табличками как Воркбенч? Может есть какой-то хидден гем в вашей области для новичков?
504 2435762
народ работаю сейчас в 1С

эта ебала дичайше тормозит. у коллег тоже, и на ноутах и стационарниках в офисе

что с ней не так? где затык?
компания экономит на сервере? или нужно железо на клиенте мощнее?
505 2436318
>>435762
Я ебу чтоли? Скорее всего и то и то
506 2439215
>>436318
ну ты просто пиздец по полочкам все разложил

и кстати иди нахуй
507 2444283
>>435417
phpmyadmin
Тред утонул или удален.
Это копия, сохраненная 26 октября 2022 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /pr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски