Главная Юзердоски Каталог Трекер NSFW Настройки

Программирование

Ответить в тред Ответить в тред
Check this out!
<<
Назад | Вниз | Каталог | Обновить | Автообновление | 505 55 213
Универсальный баз данных тред #7 /sql/ # OP 04/12/22 Вск 06:17:23 2530219 1
.png 2793Кб, 1951x2560
1951x2560
.png 493Кб, 640x480
640x480
Прошлый >>2424142 (OP)

Ссылки:
- https://www.postgresqltutorial.com/
- https://www.mysqltutorial.org/
- https://www.sqlitetutorial.net/
- https://www.oracletutorial.com/
- https://github.com/agarcialeon/awesome-database

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

Продвинутый MySQL:
- https://www.mysqltutorial.org/mysql-resources.aspx
- https://shlomi-noach.github.io/awesome-mysql/

Инструменты проектирования БД
- https://www.mysql.com/products/workbench/
- https://explain.dalibo.com/

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

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

Прочее:
- 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/

Ссылки для аутистов:
- https://www.w3schools.com/sql/
- https://learnxinyminutes.com/docs/sql/
- https://metanit.com/sql/
- http://sql-tutorial.ru/
- https://metanit.com/nosql/mongodb/


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

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

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

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

Поехали!
Аноним 04/12/22 Вск 10:15:29 2530291 2
Аноним 04/12/22 Вск 13:14:16 2530450 3
>>2530291
Сохранить данные, некритичные к целостности, между сессиями пользователя.
Аноним 04/12/22 Вск 18:11:48 2530759 4
>>2530213 →
>Нет у них преимуществ для OLTP
А кассандра это разве не oltp?
Аноним 04/12/22 Вск 18:12:44 2530760 5
Продублирую в новом треде, не обессудьте.

Есть ли реальные преимущества у nosql для oltp баз данных?

Какие преимущества и в каких кейсах?
Только инмемори кей-велью для кешей для меня очевидны.

У клепмана читал преимущества графовых. Он там пугал, что обход графа в реляционках можно заменить рекурсивными сте. Но на деле в них ничего особо страшного не оказалось, для простых кейсов вполне норм. Ну конечно если сложные обходы сложных графов или поиск в них, то да. Еще я слышал, что у графовых проблемы с большими объемами.
Какие преимущества у монги перед jsonb вообще не ясно.

Для olap вот бд колоночные(аналитика) и временных рядов(метрики) намного лучше, чем реляционки.
И вообще анончики, расскажите плиз с какими nosql вы работали и для каких кейсов.
Аноним 04/12/22 Вск 19:20:15 2530825 6
>>2530291
Логи, кеши, настройки, очереди, события, хранилища сырых данных, аналитика. Словом, всё, где скорость важнее транзакционности.
Аноним 04/12/22 Вск 21:03:41 2530927 7
Клеппманн на русском сильно хуже оригинала? У меня есть вариант купить русскоязычную сильно дешевле, но думаю, не сильно ли переводчик ее испортил.
(я мимиоаналитик который хочет перекатиться в DE, так что разница немного значительна. украсть в PDF не предлагайте, учусь лучше с бумаги, чем с экрана)
Аноним 04/12/22 Вск 22:48:44 2531004 8
>>2530927
Я посмотрел пару обсуждений челиков из Тинькова. И там один чел, который начал на русике плевался, перешел вроде на середине на англючик. Я, как быдло прочел на русике и мне норм.
Аноним 05/12/22 Пнд 13:20:23 2531390 9
Есть вложенный объект, который может быть null. Он связывается 1 к 1 с основным, айди ему не нужен. Структура вложенного объекта не меняется.
Какое поле лучше сделать в постгре - jsonb или composite type?
Сomposite type вообще кто-то пользуется?
Аноним 06/12/22 Втр 02:29:03 2532368 10
Недобизнес просит запилить им манялитическую платформу, чтобы рисовать кликабельные графики дядям в костюмах, мы думаем, как это будем делать. Я хочу лить всё из основной бд (монга) в табло или павербиай, но соседний отдел говорит что когда-то (в другой стране) им внешние консультанты успешно внедрили ElasticSearch, и там была какая-то Кибана, от которой они все писают кипятком. Как мне их переубедить? Я никогда не работал с этим Эластиком, и если честно не горю желанием - а если туда людей со стороны позовут, я вообще ХЗ какие авгиевы конюшни посадят разгребать меня.
Аноним 06/12/22 Втр 04:54:29 2532401 11
>>2532368
Если эластик как сервис, то там все более менее нормально, главное чтобы кабанчик плотил по счетам. Если это опенсерч или че там форкнутое то земля вам пухом, особенно если придется переезжать из клацдаа
Аноним 06/12/22 Втр 05:24:08 2532405 12
>>2530291
Те же самые что и у РСУБД. Нет смысла в почти 2023 выбирать постгрес или мускул с оракулом. Достаточно монгодб, которая позволяет хранить вложенные сущности, дает тебе ACID транзакции, шардирование из коробки (этого нет в РСУБД) и отличную производительность, т.к. нужные запросы идут в определенные ноды кластера.
Аноним 06/12/22 Втр 05:25:28 2532407 13
>>2532401
Чел, ты не в теме. Просто качаешь эластиксерч с офф сайта и поднимаешь кластер за 10 минут. Твой мутный опенсерч никому не всрался, чел...
Аноним 06/12/22 Втр 20:37:11 2533154 14
Вот я етл разработчик, могу оптимизировать SQL запросы и знаю пл/пгСКЛ, писать ЕТЛ джобы на айрфлу и немного НайФай, и чучуть скриптинг на питоне.
Так вот, нужен ли я хоть кому-нить за границе? Меня хоть куда-то с такими навыками возьмут? Хочу жить в тае...
Как думаете, будет ли такое время, когда я смогу работать на Российские компании, но при этом быть богачем в тае?
Аноним 06/12/22 Втр 21:34:41 2533187 15
Аноним 06/12/22 Втр 21:49:09 2533196 16
Аноним 07/12/22 Срд 07:42:20 2533467 17
>>2532405
>дает тебе ACID транзакции
Фантазируй дальше.
Аноним 07/12/22 Срд 08:21:08 2533474 18
Аноним 07/12/22 Срд 11:30:13 2533591 19
>>2533154
Лет 5 минимум с учётом текущих событий, я ща работу ищу, первый вопрос всегда "а вы часом не съебали?"
Аноним 07/12/22 Срд 11:51:22 2533613 20
>>2530219 (OP)
Гайз, чё-то туплю спасайте.
SELECT distinct
t1.p,
TRIM(t2 .n1) + TRIM(t2.n2) + TRIM(t3.n3) as n
FROM
table1 t1
JOIN table2 t2 ON t1.p = t2.p


t1.p- varchar(6), t2.p- nchar(6)
Выдаёт ошибку "Character to numeric conversion error"
Пробовал кастить t2.p в varchar но он берёт только первый символ. Если в varchar(6) то выдаёт туже ошибку.
Аноним 07/12/22 Срд 12:12:12 2533658 21
>>2532368
Ты хохол чтоли? Где они собрались брать Табло и PowerBI?
Эластик с Кибаной - это невнятное дрочение. Горя хлебнешь с этой явой. Ява пахнет тленом.
Если у них уже есть опыт - пусть и делают.

Но на перспективу, аналитику я бы хранил в Clickhouse, а визуализировал бы в Superset.
Аноним 07/12/22 Срд 13:17:58 2533774 22
Аноним 07/12/22 Срд 17:15:57 2533993 23
>>2533774
я у мамы аналитик хранилищ, по факту кроме sql нихуя не знаю
Аноним 08/12/22 Чтв 10:27:06 2534786 24
>>2533474
Пиздуй обратно, откуда вылез, мразь.
Аноним 08/12/22 Чтв 11:29:15 2534839 25
>>2534786
Заканчивай под себя срать, чел. Монга дает тебе из коробки acid транзакции, шардинг (которого никогда не будет в постгре или оракле) и еще множество вещей вроде хранения вложенных структур данных в виде жысона. Обтекай, короче.
Аноним 08/12/22 Чтв 14:59:06 2535159 26
>>2534839
А в чем проблема шардинг не из коробки к реляционкам прикрутить? Полно же тулзов.
Аноним 08/12/22 Чтв 21:07:57 2535655 27
>>2535159
Никаких проблем, но надо же прийти сюда раз в год и пошитпостить про NoSQL, а то скучно слишком.
Аноним 08/12/22 Чтв 22:10:39 2535709 28
Ну шо вы, базаны? Есть некий запрос в базу на MS SQL, по-сути это обычный select, просто с кучей joinov и выполняется где-то 5 с, он ничего не инсёртит и не апдейит, только селектит. Но блять иногда падает с
Msg 1205, Level 13, State 52, Line 3 Transaction (Process ID) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction
И я конечно понимаю, что в процессе выполнения этого селекта другими запросами апдейтятся участвующие в селекте таблицы, но какого хуя и как это с минимальными потерями обойти? В интренете полно советов но нихуя не понятно, какие-то советы про индексы. Какая то мутная UPDLOCK, которая вроде должна заприть апдейты (не надо мне такого), какая-то срань с уровнями изоляции, которые вроде как устанавливаются глобально и воздействуют на все запросы. Какого хуя не могу просто сделать сраный селект без дед лока (например селект с какого-нибудь среза), если апдейты во время селекта меня не итересуют, пусть себе апдейтится на здоровье
Аноним 10/12/22 Суб 00:59:57 2536952 29
Почему SKIP работает медленно и проходится по всем данным а не прыгает к нужным даже когда есть индекс? Почему так тупо сделали?
Аноним 10/12/22 Суб 12:28:20 2537173 30
>>2536952
почему он вообще работает?
Я что-то не вижу никакого SKIP в моем Стандарте SQL92, петушок.
Аноним 10/12/22 Суб 13:02:13 2537196 31
>>2537173
Ну тогда OFFSET. Может еще скажешь что SQL в твоем штандарте не уебищный кусок говна (как язык)?
Аноним 10/12/22 Суб 14:03:44 2537266 32
>>2537196
Хорошо, теперь можем поговорить на равных.

ЕБАТЬ ТЕБЯ НЕ ДОЛЖНО БЫСТРО ИЛИ МЕДЛЕННО РАБОТАЕТ SQL
В стандарте ничего про скорость и способ выполнения нет!
Аноним 10/12/22 Суб 14:07:58 2537270 33
>>2537266
это означает, что для ответа на вопрос ПОЧЕМУ тебе придется тебе придется изучать конкретный план конкретной СУБД с конкретными характеристиками конкретных данных.
И задавать такой вопрос на ДВАЧЕ- полностью глупо.

В твоей ситуации по какой-то причине индекс не стал использоваться.
Напиши пиши простейший запрос со SKIP, где он бы использовался и далее усложняй. Убедись что данных достаточно много, потому что у оптимизаторов есть тенденция выбирать полное линейное чтение в случаях, когда данных смехотворно мало - это действительно быстрее.
Аноним 10/12/22 Суб 14:32:26 2537298 34
>>2537266
>Хорошо, теперь можем поговорить на равных.
Поговорим.
>В стандарте ничего про скорость и способ выполнения нет!
Ну это вообще кек, как тогда свитеропетушня должна определять что уже дрищет под себе или еще нет?

>>2537270
Я про вот это:
http://use-the-index-luke.com/no-offset
>offset instructs the databases skip the first N results of a query. However, the database must still fetch these rows from the disk and bring them in order before it can send the following ones.
WTF?

Я уже спрашивал вообще то. Ожидаемо двачерская пидорва обдристалась. Но может в этот раз больше повезет
Аноним 10/12/22 Суб 14:40:56 2537305 35
>>2537266
Я кстати когда был таким же молодым петушком так же надрачивал на богом данные ШТАНДАРТЫ-ШТАНДАРТИКИ на золотых скрижалях. W3C, XHTML - вот это все. Правда когда я столкнулся с тем что с doctype происходит какая то лютая хуита не смотря на то что это самая первая строка любого документа а не какая то обскурная хуитка о которой никто не в курсе - вот тут я начал что то подозревать... А вот когда штандарт xhtml2 был официально пидорнут - вот тогда мой манямирок окончательно развалился.
Сейчас я люблю отмечать как некоторые вещи созданные практиками внезапно оказываются значительно адекватнее чем дрисня высратая стандарто-импотентами.
Аноним 10/12/22 Суб 20:31:51 2537634 36
>>2537305
да мне похуй на стандарты, просто не люблю MS SQL.
Аноним 10/12/22 Суб 20:35:07 2537636 37
>>2537298
>Ну это вообще кек, как тогда свитеропетушня должна определять что уже дрищет под себе или еще нет?

Путем анализа фактического плана и статистики выполнения фактического запроса. Или серии запросов.

>Я про вот это:
http://use-the-index-luke.com/no-offset
>>offset instructs the databases skip the first N results of a query. However, the database must still fetch these rows from the disk and bring them in order before it can send the following ones.

Строго похуй что там в MS SQL.
Если ты видишь какой-то алгоритм, который мог бы быть логически оптимизирован, наверняка в одной трех других СУБД он будет оптимизировано.
Аноним 10/12/22 Суб 22:20:23 2537684 38
Пацаны, если у меня БД SQLITE в виде файла на диске и программа-сервис, которая периодически в неё пишет/читает, то надо ли после каждого обращения к БД её закрывать?
В текущем виде объект, работающий с БД при запуске программы её открывает и не закрывает, пока прога не выключится. Вроде нареканий нет, но мало ли.
Аноним 10/12/22 Суб 22:39:55 2537702 39
>>2537684
Нет, с любой базой открываешь сессию и сидишь сколько надо.
Аноним 10/12/22 Суб 22:45:01 2537706 40
>>2537636
В Postgress тоже
https://www.postgresql.org/docs/current/queries-limit.html
>The rows skipped by an OFFSET clause still have to be computed inside the server; therefore a large OFFSET might be inefficient.

А ты сам то что думаешь, а то виляешь жопой как сеньер блядь на собеседовании.
Аноним 10/12/22 Суб 22:46:14 2537707 41
>>2537684
> В текущем виде объект, работающий с БД при запуске программы её открывает и не закрывает, пока прога не выключится
Это правильно, открывать-закрывать соединения относительно дорого, поэтому их обычно открывают при запуске программы и закрывают при завершении.
Аноним 10/12/22 Суб 23:15:16 2537719 42
>>2535709
>>2535732
Ну, допустим, а как повлияет на другие параллельные запросы других юзеров и поможет ли мне не дедлокать текущий добавление к текущему
- WITH (NOLOCK)
- WITH (REPEATABLEREAD)
- SET TRANSACTION ISOLATION LEVEL
Хорошим вариантом кажется использование WITH (SNAPSHOT), но оно требует каких-то "таблиц оптимизированных для памяти", как понять такие у меня или нет?
Аноним 10/12/22 Суб 23:18:05 2537720 43
Аноним 10/12/22 Суб 23:42:01 2537731 44
>>2537719
- WITH (NOLOCK)
- WITH (REPEATABLEREAD)
- SET TRANSACTION ISOLATION LEVEL
- WITH (SNAPSHOT)
Если короче, какая область действие будет у вот этого вот?
Аноним 11/12/22 Вск 03:22:39 2537798 45
Какая ИДЕ лучше всего подходит для датаинженегрской работы? Чтобы и код для ETLок писать было удобно, и БДшки кверять, и всё остальное.
Аноним 11/12/22 Вск 14:36:26 2538052 46
Походу это DBeaver.
Там ява и ебнишся сколько драйверов поддерживается.
А насчет рисования схем не уверен. Но ведь тебе и не надо. Ты макакен по перекладываю данных из пустого в порожнее.
Аноним 11/12/22 Вск 14:39:52 2538057 47
>>2537707
>Это правильно, открывать-закрывать соединения относительно дорого,

это пиздежь от ораклистов-онанистов из 90ых.

Тут у чувака SQLLite. Там контекст состоит из примерно ничего.
Может оно и слегка ускорит работу, но, во всяком случае, это не должно быть предметом для беспокойства.
Аноним 11/12/22 Вск 14:44:17 2538071 48
>>2538057
Закрытие БД делает в том числе сбросы кэшей, что может быть довольно продолжительными в случае медленного IO.
Аноним 11/12/22 Вск 14:45:18 2538072 49
mysql.jpg 62Кб, 1239x662
1239x662
Аноним 11/12/22 Вск 14:47:06 2538076 50
>>2538071
Сбросы кешей записи делает завершение транзакции.
Сбросы кешей чтения делает дефицит RAM.

То есть, практически ничего не происходит в SQLLite.
Аноним 11/12/22 Вск 14:52:16 2538090 51
>>2537684
если ты, как полагается, изобразил транзакции, то ничего закрывать не надо.

Безотносительно всяких танцев веб-макак вокруг пула соединений и тд
Аноним 11/12/22 Вск 15:21:14 2538143 52
>>2538057
Даже в SQLite разница на порядок. Сейчас для примера написал два теста с получением 10000 записей в цикле, но в первом тесте соединение открывалось в самом цикле, а во втором перед ним. Разница в скорости в 7 раз. Можно, конечно, рассуждать, что тест не показательный, и на очень специфичном примере разницы никакой не будет, но это всё ещё больший пиздёж, очевидно, что в среднем открывать соединения очень даже дорого.
Аноним 11/12/22 Вск 15:50:58 2538185 53
>>2538143
скажем так:
я имел ввиду, что обычно не имеет большого прикладного смысла нагружать свой мозг и усложнять приложение абстракцией типа "пул соединений"
Аноним 11/12/22 Вск 16:00:11 2538201 54
Аноним 11/12/22 Вск 16:32:40 2538275 55
>>2538201
вот пример от наших латышских (больше не)друзей:
https://support.zabbix.com/browse/ZBX-20450
сделали пул,но забыли что в каждом соединении нужно массу настроек повторить.
Аноним 11/12/22 Вск 18:08:15 2538367 56
>>2534839
>Монга дает тебе из коробки acid транзакции
В твоей ссылке ACID преподносится как какая-то волшебная хуйня для продвинутых пользователей, а не стандартное поведение БД.
>шардинг (которого никогда не будет в постгре или оракле)
Естественно не будет, так как шардинг реализуется забиванием хуя на ACID. А если прикрутить ACID на шарды, то внезапно вся волшебная NoSQL скорость пропадает и остаётся стандартная ёбля на уровне приложения.
>еще множество вещей вроде хранения вложенных структур данных в виде жысона
Жсоны хранить и читать может и постгрес. У вложенных структур есть лимит, после которого их один хуй придётся нормализовывать даже в монге, иначе у тебя кэш обосрётся.
Аноним 11/12/22 Вск 18:17:39 2538378 57
>>2537305
>XHTML
А он был стандартом? XML всегда был перегруженной ебаниной, полной поддержки которой не было ни в одной реализации. Впрочем его душок остался даже в html5 в виде svg (у которого, как и полагается реализации xml, миллион тэгов и разношёрстная их поддержка между браузерами и их версиями). Так что xhtml был мертворожденным продуктом.
Аноним 11/12/22 Вск 18:19:26 2538380 58
>>2537719
Это тебе чатбот высрал ответ, так что никаких объяснений не будет.
Аноним 11/12/22 Вск 18:27:40 2538383 59
>>2538380
А кроме ботов тут никого нет? Кто-то же засунул мой вопрос в бота. Кто ты? Где ты? Отзовись
Аноним 11/12/22 Вск 18:55:53 2538403 60
>>2538378
Ну вот тебе разве не стандарт
https://www.w3.org/TR/xhtml1/

inb4: всего лишь рекомендация
>W3C publishes Recommendations, which are considered Web standards.

Мечтал раньше вызубрить все эти штандарты от корки до корки чтобы от зубов отскакивало.
Аноним 12/12/22 Пнд 20:51:43 2539338 61
>>2537731
Да ну ёпсель, неужели тут никто не знает, как повлияют на другие запросы, содержащиеся в текущем запросе хинты таблицы, хинты запроса и вот это SET TRANSACTION ISOLATION LEVEL?
Аноним 12/12/22 Пнд 20:51:57 2539340 62
>>2537731
Да ну ёпсель, неужели тут никто не знает, как повлияют на другие запросы, содержащиеся в текущем запросе хинты таблицы, хинты запроса и вот это SET TRANSACTION ISOLATION LEVEL?
Аноним 13/12/22 Втр 11:08:20 2539631 63
Стоит ли обновлять несколько таблиц одним запросом через cte или лучше просто сделать несколько запросов в одной транзакции? У одного запроса на первый взгляд большое преимущество, потому что база на другой машине и каждый запрос, даже внутри транзакции на счету.
Аноним 13/12/22 Втр 11:30:00 2539641 64
15940298519030.jpg 70Кб, 720x720
720x720
>>2530219 (OP)
Есть задание:
Тг бот для чата многоквартирного дома, которому соседи будут писать инфу о себе( телефон, номер квартиры).
Сам бот уже написан, нужно прикрутить бд куда будет вся инфа о соседях заноситься. С БД у меня опыт нулевой, нужно простейшее решение для этой задачи.
Вначале были мысли использовать монгобд и там же хранить бд, но потом увидел что если из РФ, то иди нахуй.
Какой выход? разбирать postgre и деплоить на обычный хостинг?
Аноним 13/12/22 Втр 11:31:58 2539643 65
>>2539641
Для твоей хуйни достаточно sqlite. Не еби себе мозги
Аноним 13/12/22 Втр 11:45:03 2539653 66
>>2539641
>Которому соседи будут писать инфу о себе( телефон, номер квартиры).


Да не будем мы писать в твой подментованный бот. Ты ебнулся?
Аноним 13/12/22 Втр 11:47:47 2539655 67
>>2539653
вот кстати да, на этапе разработки у меня возникли мысли, а не подпадает ли эта хуйня под защиту информации о персональных данных.
мне то похуй, я напишу бота и отдам.
Аноним 13/12/22 Втр 11:48:39 2539660 68
>>2539643
благодарю сейчас гляну
Аноним 13/12/22 Втр 18:41:59 2540021 69
>>2539338
>>2539340
Ну все, завтра буду шатать прод без должной теоретической подготовки, ответственность за последствия полностью возлагаю на вас!
Аноним 13/12/22 Втр 18:53:09 2540029 70
>>2539655
попадает.
Все всюду попадает.
Ты не пытайся в этом разобраться. Программировать учись.
Аноним 15/12/22 Чтв 13:38:20 2541686 71
А чего б такого почитать/посмотреть из книг/курсов, что бы там было просто о сложном. Т.е. не надо меня с нуля учить писать селекты-хуекты, апдейты-хуейты. А вот об индексах-хуиндексах, кластерных и не очень, о дедлоках-хуеках, я бы почитал
Аноним 15/12/22 Чтв 14:34:10 2541726 72
Captured1.jpg 94Кб, 703x864
703x864
>>2541686
Gavin Powell — «Beginning Database Design»
Ralph Kimball, Joe Caserta — «The DWH ETL Toolkit»
Ralph Kimball, Margy Ross — «The Data Warehouse Toolkit»
W.H. Inmon — «Building the Data Warehouse»
Аноним 15/12/22 Чтв 15:13:33 2541768 73
А че будет есть уникальный констрейнт/индекс добавить в существующую бд, где данные нарушают новое ограничение?
Аноним 15/12/22 Чтв 15:16:04 2541773 74
>>2541768
Будет ошибка и констреинт не добавится.
Аноним 15/12/22 Чтв 17:52:54 2541982 75
Кажется я не могу визуализировать конструкции в sql
Как прокачаться


Суть - есть таблица ссылающиеся на себя

Как пример

Post
- id
- parent_id
- text

Нужно посчитать количество children у записи

name 2
name 0

Там кое что-то еще нужно в джойнить, но убрал этот момент. Памахите
15/12/22 Чтв 18:22:20 2542039 76
>>2541982
вроде понял, но чтот тяжело
Аноним 15/12/22 Чтв 19:11:00 2542124 77
>>2541982
это в одну группировку делается
select t1.name,count(*) from table t1 join table t1 on t1.id=t2.parent_id group by t1.name
Аноним 17/12/22 Суб 20:00:25 2544106 78
>>2530219 (OP)
Давно не сталкивался с РСУБД. Есть какие-нибудь хорошие книги/тренажеры/видео на ютубе, где можно подтянуть теорию и практику за месяц-другой? Сейчас вижу, что везде требуют постгрес, а я только с монгой работал на уровне - "ну там документы можно хранить". Сейчас валюсь на базовых вещах вроде уровней изоляции транзакций, например.
Аноним 17/12/22 Суб 22:12:25 2544214 79
>>2544106
>Сейчас валюсь на базовых вещах вроде уровней изоляции транзакций, например.
Это нихуя не базовая вещь.
Аноним 18/12/22 Вск 10:19:32 2544530 80
>>2544214
Видимо базовая, раз ее спрашивают буквально на каждом собеседовании. Я раньше вообще об этом не задумывался. Но буквально на каждом собесе спрашивают "а вот когда какой уровень изоляции выбирать? а в каких случаях? а если две параллельные записи идут? а на чтение какую выбрать?". И это вершина айсберга.
Аноним 18/12/22 Вск 13:00:43 2544634 81
>>2544530
Индустрия карго-культистов, хуле. Еще про говно-солид любят спрашивать, хотя любому с хотя бы одной извилиной очевидно что это хуита ни к чему не применимая ни на практике ни в теории.
Аноним 19/12/22 Пнд 13:56:17 2545915 82
Python + Pandas могут вообще заменить SQL в работе дата-аналитика?
Аноним 19/12/22 Пнд 13:58:31 2545920 83
Аноним 19/12/22 Пнд 15:10:03 2545977 84
Аноним 19/12/22 Пнд 15:33:26 2545993 85
image.png 65Кб, 813x642
813x642
image.png 74Кб, 763x694
763x694
>>2545915
Спросил у ChatGPT. Машиноперевод на пик2
Аноним 19/12/22 Пнд 15:44:31 2546004 86
>>2545993
Самое забавное, что ChatGPT просто не может послать нахуй с некорректным вопросом. Как вообще фреймворк для python может заменить язык запросов в БД?
Аноним 19/12/22 Пнд 15:47:45 2546010 87
>>2545915
тупой вопрос тупого говна называющего себя аналитиком.

Что ты вообще имел ввиду?
Можешь ли ты пропустить изучение SQL и продолжать выполнять рабочие задачи аналитика? Зависит от ситуации, но скорее нет.

Сопоставимы ли pandas и sql по "мощности" операций?
pandas - мощнее.
Аноним 19/12/22 Пнд 15:49:23 2546012 88
>>2546010
Машина говорит, что можно заменить. Я тебе не верю, ты не авторитет!
Аноним 19/12/22 Пнд 16:01:45 2546037 89
>>2546012
Машина будет говорить все то, что думает большинство.
Доверяя машине ты почти никогда не будешь иметь знать нечто малопопулярное, но популярное в будущем.
То есть, не сможешь стать сказочно богатым.

А я однажды смогу.
Аноним 19/12/22 Пнд 18:08:50 2546227 90
>>2546037
Большинство - авторитет. А ты - нет.
Аноним 19/12/22 Пнд 18:16:43 2546236 91
>>2546227
хватит троллить тупостью.
ты хотя бы мои ответы вбиваешь в нейросеть?
Аноним 19/12/22 Пнд 18:49:36 2546261 92
>>2546236
Ты - недостоин нейросети.
Аноним 20/12/22 Втр 17:30:17 2547501 93
Можно что-то сделать на уровне бд, чтобы поле могло быть нулевым, но его нельзя было занулить при update?
Аноним 20/12/22 Втр 17:39:33 2547517 94
>>2547501
Триггер. Но нахуй так делать в БД, воткни проверку на уровне логики приложения.
Аноним 20/12/22 Втр 19:13:17 2547627 95
Аноним 23/12/22 Птн 01:30:42 2550327 96
Насколько хорошая идея создавать вьюху чисто из-за того, что выходное дто в другом формате по сравнению с сущностью/таблицей? То есть просто чтобы было мапить результат одного селекта.
Аноним 23/12/22 Птн 01:37:07 2550335 97
>>2550327
Вьюхи часто для этого и создают.
Аноним 23/12/22 Птн 10:33:28 2550487 98
>>2550327
Нужно разделять уровень презентации (dto) и уровень хранения сущностей. А так у тебя выходит, что ты из базы уже достаешь сущность, которую тут же можно вернуть клиенту.
Аноним 23/12/22 Птн 11:15:41 2550523 99
>>2550487
Да. Хочу доставать сразу готовое, потому что трудозатрат смаппить в миграциях во вьюху будет меньше, чем маппить в сервисе.
Аноним 23/12/22 Птн 11:21:08 2550535 100
>>2550335
>>2550487
Просто хочу узнать минусы этого подхода. Я с вьюхи до этого сам не писал, писал зубодробительные мапперы на уровне приложения или элиас для каждого возвращаемого поля. Например про разделение уровней в этом случае, я пока не вижу проблемы. Если она есть, можно примеры?
Аноним 24/12/22 Суб 15:24:21 2552065 101
Есть таблица (starttime, endtime, event) как то можно посчитать максимальное количество одновременных событий за час или день. Пока придумал запрашивать через каждую секунду, потом результат как то складывать, но все это ужасно неоптимально. Спросите у бота в английский не могу
Аноним 24/12/22 Суб 17:14:28 2552232 102
>>2552065
>максимальное количество одновременных событий за час или день
Это ты сам задание придумал? Потому что "за час" это обычно с 6 до 7, а не с 13:34 до 14:34. "За день" тем более.
Аноним 24/12/22 Суб 17:57:30 2552301 103
>>2552232
И что по твоему если все события начались и закончились строго в течении часа будет проще?
Аноним 24/12/22 Суб 18:31:39 2552347 104
>>2552301
Разве нет? Подумай.
Аноним 25/12/22 Вск 11:27:29 2553045 105
>>2552347
Получается что нет, единственный вариант вижу когда все события начинаются и заканчиваются одновременно, тогда через групировку по времени можно на изи. Ну это совсем хуйня далекая от задачи
Аноним 25/12/22 Вск 11:59:22 2553062 106
>>2553045
>Получается что нет
Почему нет? В твоей схеме ты планировал
>запрашивать через каждую секунду
то есть 86400 раз в день, для разделения по часам тебе нужно будет только 24 раза запросить, что в 3600 раз меньше работы.
Аноним 25/12/22 Вск 12:17:37 2553086 107
>>2553062
Ясно, ты вообще не понял задачу. Ну ладно, хоть тред побампаем, может кто умный прийдет
Аноним 25/12/22 Вск 12:24:20 2553107 108
image.png 56Кб, 449x284
449x284
>>2553086
>Ясно, ты вообще не понял задачу.
Расскажи тогда, в чём отличие от обычной задачи на разбиение по часам, кроме того, что события могут одновременно в нескольких часах быть?
Аноним 25/12/22 Вск 13:03:05 2553157 109
>>2552065
Ты как-то неудачно сформулировал.
Нужен акцент на то что это задача на running total.

В общем, делаешь:
Select max ..
(Select sum(v), point from
(
select 1 as v, starttime as point from ..
union
select -1 as v, stoptime as point from ...
)
...изучаешь как писать running sum with windows functions ..
Аноним 25/12/22 Вск 13:16:40 2553162 110
>>2553157
А хотя нет, сложных window function не нужно.
Просто сумма с предыдущим делается как LAG(v,1) OVER(ORDER BY point)

даст мгновенную сумму
Аноним 05/01/23 Чтв 16:33:04 2563844 111
Посоны, такое дело, у меня на проде в последнее время что-то слишком много данных скапливается на проде. Сотни тысяч юзеров, несколько миллионов заказов. Короче, ещё не биг дата, но уже и не сайт-визитка.
А я с такими объёмами дела до этого не имел (редко, когда в таблице было больше миллиона строк) и не представляю, что вообще может пригодиться.

Мне уже нужно думать о партиционировании?
Какое вообще количество данных в таблице считается разумным?
Во что я могу упереться?
И так далее.

Чего на эту тему можно поизучать? У меня постгря, если что.

Пока что я обвесил базу метриками, убедился, что все запросы происходят по индексам, нет sequence scan и долгих запросов в рантайме запроса. Ну и мастер-слейв организовал, но это давно и заранее.
Аноним 05/01/23 Чтв 17:08:02 2563872 112
>>2563844
удаляй.
если ты не можешь себе позволить платить дармодедам-датасаентистам, все удаляй.
Аноним 05/01/23 Чтв 17:21:42 2563896 113
>>2563872
Какой-то хуевый совет. Зачем удалять? Просто так? Эта хуйня не совсем лежит мертвым грузом, где-то саппорт заходит в старые заказы по каким-нибудь жалобам и/или обращениям, где-то статистика считается.
Да и нахуя вообще удалять, некоторые судя по статьям в интернете, в одной таблице десятки миллионов строк хранят и нормально.
А даже если и удалять, потом ведь может понадобится, надо где-то складировать, предусматривать де-архивацию старых данных.
Аноним 05/01/23 Чтв 17:45:12 2563921 114
>>2563896
Сейчас подумал, что можно положить старые данные в отдельную таблицу `_old` и там они могут лежать вечно. Хранение данных стоит копейки, читать и писать туда особо никто не будет, так что держать там можно хоть миллиарды записей (вроде ограничений на число строк же нет?).
А в случае необходимости данные будут под рукой.
Аноним 05/01/23 Чтв 17:59:53 2563939 115
>>2563896
Ну я же вижу что ты задаешь вопросы не того уровня чтобы работать с данными.
Вот тебе мысль на подумать:
> Средняя сложность поиска в бинарном дереве - O(log n)
По мере роста размера ничего особо сильно не меняется.

>Какое вообще количество данных в таблице считается разумным?
У всех разные возможности и интеллектуальные и финансовые.
Так что это не должно быть для тебя метрической величиной.
Аноним 05/01/23 Чтв 18:14:10 2563955 116
>>2563939
Мне как раз и нужно понимание, на что ориентироваться.

Причём тут сложность поиска в бинарном дереве непонятно, данные не только читаются. Их ещё удаляют (а значит проблема с вакуумом и мусором), реструктурируют, им создают новые индексы (очевидно больно в случае больших таблиц) и всё такое.
Ты пока дал тупой совет "просто удаляй", при том, что вопрос был "как с большим количеством данных живут люди и мне понять, как жить с ними мне?".
Удаление - это одна из опций, которая не является универсальным решением проблем.
Аноним 05/01/23 Чтв 19:01:56 2564016 117
>>2563955
Если бы ты был моим крепостным крестьянином и вырос по моим присмотром, я бы тебе ответил что делать.
Кстати, всю твою зарплату я бы тоже забирал.

А пока делай что хочешь со своими решениями. Но вопросы задавай в форме общественно-полезной дискуссии.
Можно обсуждать как выгодно поступить в той или иной обобщенной ситуации. А про тебя мы ничего не знаем. Никакого решения за тебя принять не можем и не хотим.
Аноним 05/01/23 Чтв 19:55:40 2564073 118
>>2564016
Изначальный вопрос был
> Чего на эту тему можно поизучать? У меня постгря, если что.
Ожидаемые ответы - рефы на книги, статьи и видосы с конференций.

Но я уже понял, что от тебя вразумительных ответов можно не ждать.
Аноним 06/01/23 Птн 01:47:25 2564392 119
>>2564073
Не так.
Вот твой вопрос:
>Какое вообще количество данных в таблице считается разумным?

То есть, как ы сраном тиктоке решил спросить у подпищеков какую-то хуйню, которая первой пришла в голову. Реально ожидая, что ответят "200 гб - это дохуя"?

И да, мне все равно что будет конкретно с тобой. В этом плаге дискуссия бесполезна для тебя.
Но я готов дискутировать о подходах.
Аноним 06/01/23 Птн 02:39:25 2564412 120
>>2563955
Вот есть у тебя метрики.
Ты сравнивал различия их при условно 2 миллионах строк и при 10? Увидел какую-то просадку?
SQL Duck 08/01/23 Вск 13:04:23 2566371 121
Сломался,не могу сделать верный запрос.
Принтеры.
Каждый день отсылают данные мол я работаю.
Мне нужен запрос который покажет сколько принтеров за 10 дней отказалось работать.
days , count
1- 2
2- 4
3- 5
...
10 12

http://sqlfiddle.com/#!17/f6f911/2/0

Postgres v.11.9
CREATE TABLE printers (
id SERIAL PRIMARY KEY,
last_working_day DATE
);

INSERT INTO printers(id,last_working_day)
VALUES
(1,'2023-01-01'),
(2,'2023-01-01'),
(3,'2023-01-02'),
(4,'2023-01-02'),
(5,'2023-01-03'),
(6,'2023-01-04'),
(7,'2023-01-05'),
(8,'2023-01-06'),
(9,'2023-01-07'),
(10,'2023-01-07'),
(11,'2023-01-07'),
(12,'2023-01-07');


Этот запрос группирует по дням за 10 дней,совсем не то что надо.
А нужный не могу сделать,не хватает IQ.
SELECT last_working_day, count(*)
FROM printers
WHERE last_working_day > current_date - INTERVAL '10 day'
GROUP BY last_working_day
ORDER BY last_working_day DESC;
Аноним 08/01/23 Вск 14:09:28 2566423 122
>>2566410
Результат 12.
Такой же ответ как и тут.
SELECT count(*)
FROM printers
WHERE last_working_day > current_date - INTERVAL '10 day';

А требуется ответ
в котором за каждый день сколько принтеров отвалилось.
1 запрос 1 ответ.
нету кнопки + в sqlite Аноним 08/01/23 Вск 18:41:47 2566821 123
image.png 15Кб, 533x430
533x430
image.png 393Кб, 1127x595
1127x595
Сап б. Скачал этот наш sqlite , хочу стартануть изучение создав первую бд. А КНОПКИ + НЕТУ. спасите, я уже не знаю что пробовать .
Аноним 08/01/23 Вск 19:06:53 2566841 124
>>2566821
Ну создай пустой файл и его открой.
Да и этот говноредактор нинужен.
Аноним 08/01/23 Вск 19:08:45 2566845 125
>>2566821
Ты не sqlite скачал, а какую-то неиспользуемую никем говностудию для sqlite.
Аноним 08/01/23 Вск 21:01:44 2566938 126
Подскажите, как проще всего потестить как работают простые штуки типа представления, тригера, процедуры, создания таблицы? На домашнем пк. Установить тестовый ms sql server? Вот думаю, должны быть какие-то вебсайты для тестирования простых вещей.
Аноним 08/01/23 Вск 21:02:25 2566939 127
>>2566938
Забыл сказать, что мне нужно t-sql
Аноним 08/01/23 Вск 21:06:02 2566942 128
Аноним 09/01/23 Пнд 16:18:23 2567863 129
Аноним 09/01/23 Пнд 18:24:12 2568019 130
>>2567863
Это он на шинде поставит виртуалку с докером, а в докере нативный для шинды мсскл?
А ты знаешь толк.
Аноним 09/01/23 Пнд 18:44:06 2568052 131
>>2568019
Все правильно. А зачем ему виндовый mssql ?

Это же Microsoft. Обещали что все работает - все и будет работать.
Аноним 10/01/23 Втр 00:50:26 2568508 132
Посоны, а как приложения вроде anki хранят данные? Я видел, что они пользуются sqlite, даже посмотрел, че там внутри, но к сожалению нихуя не понял.
У каждого пользователя есть колоды, в каждой колоде есть карты, у карты 2 стороны, каждая сторона может иметь кастомное число строк + всякие медиаданные.
Как такое вообще хранить в базе данных, есть ли у них одна огромная база данных для всех пользователей или она у каждого пользователя своя? В конце-концов они выделяют под юзера ограниченное число памяти.
Аноним 10/01/23 Втр 01:01:19 2568511 133
>>2568508
У каждого своя. Sqlite создаёт один файл, который хранится у самого пользователя, там просто несколько таблиц, с ними делаются обычные селекты-инсерты-апдейты. Никакой магии тут нет, всё просто. Вот одно из описаний схемы БД Anki: https://gist.github.com/sartak/3921255
Аноним 10/01/23 Втр 01:41:08 2568527 134
>>2568511
А, ну со структурой базы данных я разобрался, я реально думал там что-то сложное, а там просто все, уникальное количество строк они хранят в текстовом поле и используют сепаратор.
Но у них есть и вебверсия, мне интересно, каждый юзер имеет свою базу данных там тоже?
Аноним 10/01/23 Втр 02:57:20 2568554 135
>>2530219 (OP)
Что посоветуете читать по теоретическим основам баз данных, с некоторой практической частью?
Говно на уровне джойнов, оконных функций, подзапросов я умею, но не хватает фундаментальных знаний, чтобы писать эффективный код.
Аноним 10/01/23 Втр 03:01:00 2568555 136
>>2568554
В догонку: или вот на соьесе у меня спрашивают что такое b-tree, а я об этом в первый раз слышу)) в общем мне сильно не хватает фундамента по устройству БД
Аноним 10/01/23 Втр 07:38:21 2568603 137
>>2530219 (OP)
Как быстрее всего повторить теорию по базам данных и SQL, чтобы не валится на собеседовании на задачках по SQL и вопросам вроде уровней изоляции транзакций и т.д?
Аноним 10/01/23 Втр 15:01:25 2569023 138
1156900.jpg 66Кб, 604x453
604x453
>>2568555
Тебе вася нихватает умения бросать мусорные вакансии в чёрный список. Пока тебе только и остаётся, что по разным помойкам шароёбицца, где у тя спрашивают что такое b-tree.
Аноним 10/01/23 Втр 17:11:09 2569215 139
>>2569023
У меня на разраба спрашивали отличие и примеры OLTP и OLAP баз данных, уровни изоляции транзакций и когда какой уровень применять, про виды индексов спрашивали и как они устроены и когда какой применять.
Аноним 10/01/23 Втр 17:16:33 2569226 140
>>2569215
Дай угадаю, ОАО "Национальная платформа".
Аноним 10/01/23 Втр 18:54:37 2569390 141
>>2569226
Нет. Ну и про чтение плана запроса или глубокое понимание как оптимизировать запросы тоже спрашивали.
Аноним 10/01/23 Втр 19:03:18 2569401 142
Аноним 10/01/23 Втр 19:15:30 2569419 143
>>2569390
Глубокое понимание плана это как? Хватит сказать, что надо прочитать используются ли индексы и убрать по возможности сек сканы, правильной расстановкой индексов?
Аноним 17/01/23 Втр 20:48:04 2577618 144
Анон, подскажи, composite primary key насколько широко используется на практике? По идее экономит место, все должны довольно урчать.
Ньюфаг, да.
Аноним 17/01/23 Втр 21:00:37 2577626 145
>>2577618
Какое место он экономит? При ссылках из других таблиц приходится добавлять несколько лишних столбцов вместо одного айдишника, приходится везде городить compound index-ы, в джойнах нужно писать очень сложные условия, при изменении ключевого атрибута приходится апдейтить все связанные таблицы с риском что-то забыть, в коде приходится вместо одного числа таскать структуру из нескольких полей. Сплошная боль. Используется только в дополнении в айдишникам и обычно только на уровне бизнес-логики.
Аноним 18/01/23 Срд 20:14:07 2578898 146
>>2577626
Звучит резонно, спасибо.
Аноним 19/01/23 Чтв 01:18:16 2579160 147
>>2577626
>Какое место он экономит?
Известно какое - не нужен уникальный ключ, если так или иначе ты собираешься объявлять уникальность комбинации двух столбцов.

Короче, нужен - используй.
Не нужен - не используй.

Заебали зумерские вопросы. Как будто вам думать и экспериментировать запрещают и обязательно нужно сделать как у соседа
Аноним 19/01/23 Чтв 08:32:53 2579253 148
У меня есть Logs и связанная с ней LogsContent, содержащая большую строку. Могу ли я написать хранимку, возвращающую булево значение, показывающее наличие строки во второй таблице? На ум приходит что-то типа такого, но это невалидно:
SELECT
l.Id,
(lc.Content IS NOT NULL) AS ContainsContent
FROM
Logs AS l LEFT JOIN LogsContent AS lc ON l.ContentId = lc.Id

Как правильно запихнуть выражение в SELECT?
Аноним 19/01/23 Чтв 09:10:57 2579263 149
>>2579253
А, всё, заебок, сам всю хуйню допёр, ёпта
Аноним 19/01/23 Чтв 09:30:26 2579277 150
Postgres & Indexes

если у меня есть таблица baza и у нее есть поле foo_datetime timestamp with time zone.
У каждой записи по итогу (после некой обработки) foo_datetime выставляется в null.
Я хочу навесить индекс на foo_datetime, но не хочу чтобы он бесконечно разрастался (тк таблица растет условно бесконечно)

CREATE INDEX baza_foo_datetime_btree_index
ON baza (foo_datetime)
WHERE foo_datetime IS NOT NULL;

так будет работать индекс?
если я делаю запросы типа

SELECT FROM baza WHERE foo_datetime < now()

или могу сделать

SELECT
FROM baza WHERE foo_datetime IS NOT NULL AND foo_datetime < now()

как лучше?
Аноним 19/01/23 Чтв 15:34:03 2579618 151
>>2579277
оптимизатор - это настолько сложная тема, что проще забить похожими данными и попробовать.

вангую что create index where not null должен работать как задумано.
Аноним 21/01/23 Суб 01:37:59 2581523 152
>>2545915
"дата-аналитик" это 12 тысяч разных работ, и то чем ты занимаешься сильно зависит от конкретной конторы. Я работал в одной и был аналитиком, и код там был только на VBA, ни про какой питон никто и думать не думал, а о БД и подавно. Сейчас работаю во второй и тоже знать языки запросов особо не приходится - одни Панды. Данные выкачиваем из внутреннего портала или апишника, квери пишем джейсонами (и то, чаще копируем и вставляем). Но при этом мой же бывший одногруппник будучи датааналитиком никогда не видел Питон, зато живет в MS SQL Server годами и не умеет ничего еще.
Если ты СОИСКИВАЕШЬ работу, то я бы изучил хотя бы основу скуля, на больше позиций сможешь претендовать.Если тебе комфортно там где есть... тоже изучить лучше, но не критично.
Аноним 22/01/23 Вск 13:24:05 2582809 153
Сап двач. Учусь на втором курсе на экономике очно-заочно, работаю. Сейчас идет сессия, надо сдать дз по дисциплине "Методы оптимизации" (линейное программирование, модели злп, теория матричных игр), а я в этом не шарю, и все время уходит на то, чтобы сдать предметы, в которых разбираюсь.
В общем, если найдутся добрые люди, которые готовы решить несколько задач по этим темам за золотую монету, напишите мне в телеге - @nekochan351. Отблагодарю через СБП!!
Аноним 23/01/23 Пнд 09:44:11 2583996 154
Аноны, такой вопрос по бд Ораклу, очень важно.
Всю жизнь работал на MsSql, а тут срочно потребовалось кое что для Оракла делать.. Вроде и тоже самое, но и есть нюансы.
Короче в чём суть. На sql достаточно просто написать запрос, где условно можно создать табличную переменную, присвоить ей результат запроса, а потом из неё, другим запросом, выдать результат. Как то в Оракле такое реализуемо? Можете примерный код накидать?
Аноним 23/01/23 Пнд 11:01:36 2584115 155
Аноним 23/01/23 Пнд 11:04:20 2584119 156
>>2583996
Ну или, возможно, ты не в курсе что есть CURSOR, который вроде сравнительно стандартизирован ?
Аноним 23/01/23 Пнд 17:34:29 2584624 157
image.png 52Кб, 263x367
263x367
>>2530219 (OP)
Автор имеет ID, а таблица book на него ссылается. Значит стрелка должна идти от таблицы book, разве нет?
Аноним 23/01/23 Пнд 17:35:11 2584625 158
image.png 41Кб, 263x367
263x367
Автор имеет ID, а таблица book на него ссылается. Значит стрелка должна идти от таблицы book, разве нет?
Аноним 24/01/23 Втр 11:08:24 2585134 159
>>2530219 (OP)
Посоветуйте книгу или иной ресурс, где подробно рассматривают как устроен пессимистичные и оптимистичные блокировки в СУБД и как это ложиться на уровни изоляции транзакций. Искал в документации по постгрес, но там есть какие собственные явные локи и про pessimistic/optimistic locking по сути ничего нет... Уже на четвертом собесе попускают...
Аноним 24/01/23 Втр 14:51:22 2585370 160
Screenshot4.png 39Кб, 852x314
852x314
Screenshot5.png 43Кб, 849x636
849x636
Screenshot6.png 34Кб, 826x849
826x849
Почаны я вам покушать задания с собеса принёс, налетай.
Аноним 24/01/23 Втр 15:59:43 2585489 161
>>2584624 >>2584625
Стрелка означает "один-ко-многим". Кстати, названия неправильные. по стандарту должно быть:
- author.id
- author.name
- book.id
- book.author_id
- book.title
- stock.id
- stock.book_id
- stock.price
- stock.amount
А не то, что на картинке.
Аноним 24/01/23 Втр 16:04:27 2585498 162
V-Dolnik-1.png 15Кб, 694x485
694x485
V-Dolnik-2.png 25Кб, 691x659
691x659
veronika.png 344Кб, 818x500
818x500
>>2585134
Виктор Дольник, «Непослушное дитя биосферы».
Роберт Саттон, «Не работайте с мудаками».
Павел Кучер, «Деревянный хлеб».
Конрад Лоренц, «Агрессия».
и т.д. много их!
Аноним 24/01/23 Втр 16:19:19 2585526 163
изображение.png 199Кб, 1188x461
1188x461
>>2585134
да этого никто не знает. Никто!
Аноним 24/01/23 Втр 16:22:37 2585529 164
>>2585134
ты кстати можешь просто пропускать собесы где MS SQL упомянут и тогда не нужно будет разбираться в этом
Аноним 24/01/23 Втр 18:23:07 2585685 165
>>2585529
Это почему?. Уровни изоляции ни кто на практике не меняет, а блокировок LOCK FOR UPDATE LOCK FOR SHARE или просто
UPDATE account SET amount = 100 WHERE id=1 AND updated_at='2023-01-24 18:10:15' используют даже пыхомакаки на mysql
Аноним 24/01/23 Втр 18:36:27 2585700 166
>>2585685
Потому, что пропускать надо 90% вакансий, вот почему.
Аноним 25/01/23 Срд 08:31:04 2586260 167
Подскажите нубу. Есть большая таблица, ну допустим с кроссовками. В еще одной таблице хранится инфа о типе кроссовок(ну там беговые, повседневные и тп). Можно ли как-то одним запросов вытащить 40 кроссовок, из которых 20 будут беговыми и 20 повседневными? При этом имея возмоность пагинациии
Аноним 25/01/23 Срд 08:36:22 2586262 168
>>2586260
дополню условие. Если беговых еще много, а повседневных осталось мало(например 5), то нужно получить 5 повседневных и 35 беговых
Аноним 25/01/23 Срд 11:21:08 2586413 169
>>2586262
UNION работает до OFFSET и LIMIT так что возможность пагинации остается.
Аноним 25/01/23 Срд 11:25:57 2586418 170
>>2585685
потому что в postresql, oracle и mysql использется так называемая МНОГОВЕРСИОННОСТЬ и вопрос не имеет смысла
Аноним 25/01/23 Срд 11:33:58 2586421 171
>>2586260
тебе тимлид скобки запрещает использовать в SQL или что?
не понимаю сути вопроса.

Надо - делай.
А человека, в точности с такой проблемой как у тебя и сделающего за тебя твою работу, ты редко когда найдешь
Аноним 25/01/23 Срд 11:35:33 2586422 172
>>2586418
И как многоверсионность поможет избежать потерянных обновлений?
Аноним 25/01/23 Срд 11:50:47 2586435 173
>>2586413
хотя нет. так не получится. limit подзапросе не работает
Аноним 25/01/23 Срд 12:02:24 2586445 174
>>2586422
откуда мне знать? я знаю только что MSSQL родила концепцию блокировочников, которую все скорее игнорируют.
Аноним 25/01/23 Срд 12:07:20 2586446 175
>>2586435
хотя у тебя в задаче offset пагинация не имеет смысла: ты либо все повседневные перебираешь либо беговые. Тебе нужна keyset пагинация по двум id
последнее выбранное id беговых
последнее выбранное id повседневных
джоинишь таблицу саму на себя декартовым произведением
и выбираешь первые двадцать пар, потом вторые
как-то так
Аноним 25/01/23 Срд 12:14:17 2586453 176
>>2586446
> блок рекомендательный кроссовок на каждой странице магазина
>джоинишь таблицу саму на себя декартовым произведением
> жидко пукнув сервер умирает

на самом деле, мы поняли этот вопрос.
Это непросто. И кроме того, в будущем рекомендацию возможно придется часто менять по прихоти маркетологов.
Сейчас есть даже кооперативные системы рекомендаций и даже мелкий магазинчик способен выдавать рекомендации уровня Алиэкспресса. Но там денег стоит. И все данные придется сливать.
Аноним 25/01/23 Срд 12:29:21 2586465 177
>>2586453
поч он должен умереть?
джоин двух субквери
select * from (select id, name, price from products where type=1 and id > id1) a, (select id, name, price from products where type=2 and id > id2) b limit 20
Аноним 25/01/23 Срд 15:58:00 2586707 178
Аноним 25/01/23 Срд 16:44:20 2586761 179
>>2586707
На рутрекере есть видеокурс от специалиста М10987С, там эта тема затрагивалась.
Аноним 25/01/23 Срд 16:50:38 2586770 180
>>2586465

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

Я не вижу тут у тебя limit 20 по какому order by?
На основании чего сервер должен остановиться при выборе type1 ?
Зависит от конкретных данных и движка, но возможна ситуация когда будет дрючить очень много.
Аноним 25/01/23 Срд 17:03:00 2586799 181
>>2586761
>М10987С
Там это MS-SQL. А меня на постгресе попускали
Аноним 25/01/23 Срд 18:24:14 2586964 182
>>2586799
Лол пчел и правильно что попустили. Ты там нормальные форму тоже только для постгреса ищешь?
Аноним 25/01/23 Срд 18:27:03 2586967 183
>>2586964
А в постргесе нет пессимистичной блокировки?
Аноним 26/01/23 Чтв 18:38:26 2588404 184
Я тупой так что не обоссывайте сразу
Есть таблица postgres, в ней 100к+ записей, столбцов куча, но меня пара столбцов интересует, время последнего изменения и название. Так вот в результате обсера, в таблицу добавили 1к записей, с пустыми название, и образовались дубликаты уже имеющихся данных, у которых все идентично, кроме пустого имени. У них полностью совпадает время последнего изменения, вот поэтому полю я и нашел их. И получается что при выборе, в по автоматом подтягивает последние данные, а там пустота в имени. Задача стоит их найти и удалить только те где название пусто
Каким образом?

Having group by подзапросы это все на1% понятно в теории, на деле, ищется всякая хуета, нашел только пустые имена, но время как сравнить чтобы их удалить? нашел дубликаты по времени, но куда еще че вписать чтобы их ид вытянуть иначе как удалять? толку от того что знаю что их тысяча если некоторые даты повторяются для совсем разных строк более 2 раз. Чем дальше сидел пыхтел тем больше запутался и нихуя не вдупляю
Аноним 26/01/23 Чтв 18:40:55 2588410 185
>>2588404
>У них полностью совпадает время последнего изменения, вот поэтому полю я и нашел их
up нашел не так, а нашел тупо по пустому названию, строки, но есть строки пустые которые должны быть и они были до обсера, поэтому удалить надо только те что добавили недавно, у которых время совпадает, за последнюю неделю
Аноним 28/01/23 Суб 15:07:19 2590747 186
Здравствуйте!
Изучаю sql неделю, решаю задачки и совсем не могу понять один момент в конкретной задаче:

https://www.sql-ex.ru/learn_exercises.php

32 задача.

Задача решает вот таким кодом:

SELECT
country,
CAST(AVG((boreborebore)/2) AS NUMERIC(6,2)) AS weight
FROM
(select
c.country,
c.bore,
s.name
from
Classes as c
inner join
Ships as s
on
c.class = s.class
union
select
c.country,
c.bore,
o.ship
from
Classes as c
inner join
Outcomes as o
on
c.class = o.ship) AS t1
GROUP BY
country

Но я не могу понять почему, если убрать в обоих подзапросах s.name и o.ship соответственно, то некорректно считают корабли из USA и Japan?
Аноним 28/01/23 Суб 15:07:47 2590749 187
Аноним 28/01/23 Суб 15:10:01 2590754 188
f4a05b48b3.jpg 110Кб, 661x631
661x631
>>2590747
Пожалуй так прикреплю запрос.
Аноним 28/01/23 Суб 15:14:27 2590764 189
Аноним 28/01/23 Суб 15:20:35 2590770 190
>>2590764
С UNION ALL начинает корректно считать Японию, но USA все равно считает неправильно.
Аноним 28/01/23 Суб 15:21:04 2590772 191
>>2590764
С UNION ALL начинает корректно считать Японию, но USA все равно считает неправильно.
Аноним 30/01/23 Пнд 00:23:09 2592889 192
Нубский вопрос.
Как правильно хранить историю версий объекта в sql таблице?
Допустим я храню ветку форума из постов, с полями [post_id, thread_id, timestamp, message_content]
Периодически message_content может меняться, я хочу хранить историю изменений.
Есть ли какой-то элегантный способ хранить её прям в той же таблице? При том что post_id это pk и его не хотелось бы менять.
Соответственно, запросов к предыдущим версиям объектов мало, чтений актуальной версии много.
Аноним 30/01/23 Пнд 01:07:24 2592941 193
>>2592889
> Как правильно хранить историю версий объекта в sql таблице?
Чаще всего тупо делают отдельную таблицу с историей, с таймштампами, без внешних ключей, без NOT NULL, UNIQUE и других констреинтов. Ещё есть подход Data Vault.
> Есть ли какой-то элегантный способ хранить её прям в той же таблице?
Зачем? Можно, конечно, сохранять старые версии постов как фиктивные посты с другим номером и с отдельным столбцом-ссылкой на актуальный пост, для настоящих постов там будет NULL. Но придётся в каждом селекте проверять этот столбец на NULL, чтобы отсечь исторические записи, также придётся быть осторожным с внешними ключами, да и индексы будут занимать больше места (хотя это вряд ли критично).
Аноним 30/01/23 Пнд 01:38:07 2592961 194
>>2592941
>Зачем?

Просто если хранить историю в отдельной таблице то нужно при обновлении версии отдельно писать в неё (кстати, можно ли это делать средствами самой субд при апдейте?), а ещё нужно руками держать схемы двух таблиц в соответствии.

В одной таблице хочется для того чтобы это было бесплатно с логической точки зрения, типа есть основная таблица где все версии свалены в кучу, а есть вьюха из которой можно читать актуальные версии, типа того.
Аноним 30/01/23 Пнд 04:25:36 2592986 195
>>2592961
> можно ли это делать средствами самой субд при апдейте?
Можно устроить помойку в триггерах, но не стоит так делать. В базе данных должны быть данные, а не логика.
Аноним 31/01/23 Втр 11:54:47 2594207 196
Аноним 03/02/23 Птн 11:01:15 2597785 197
>>2530219 (OP)
Создаю схему бд для книг, там есть серийный номер книги, получается, что можно серийный номер посчитать как id?
Или серийный номер может совпадать?
Аноним 03/02/23 Птн 13:00:17 2597886 198
>>2597785
если ты про ISBN, разумеется, он никогда совпадать не может
Аноним 04/02/23 Суб 19:19:07 2599193 199
Всем сап. Вопрос такой: как правильно решить такую задачу? Я создала запрос, который считает сумму для каждого заказа, сделанного в 2022 году, дальше не могу сообразить.
Ссылка на бд и задание
http://sqlfiddle.com/#!4/c6dcc
Аноним 04/02/23 Суб 19:22:18 2599195 200
>>2599193
Сорян, задание не отобразилось
1)Выберите наибольшую сумму заказа для каждого продавца за последний год. Вывести: имя продавца, имя заказчика, месяц заказа, сумму заказа.
Аноним 04/02/23 Суб 23:42:11 2599431 201
Аноним 06/02/23 Пнд 18:15:26 2601354 202
Двач-помогач! Есть дамп MariaDB (текстовый файл с расширением sql) размером 1,5 гига, надо как-то визуализировать его структуру, чтобы легче было читать внутренности. Из имеющихся инструментов что ни находил - умеет только подключаться к работающей базе, дамп импортирвоать не умеет. Вроде, LibreOffice Base во встроенную импортировать умеет - но на таких размерах он превращается в стресс-тестилку (у меня ноут, БЛДЖАД!). Вроде, даже DB Browser for SQLite такие файлы понимает, но не с директивами от MariaDB. Исходной, работающей базы уже нет.

Как теперь этот файл просто посмотреть? Без поднятия настоящей СУБД никак? Хорошо, как для MariaDB это сделать быстро (у меня пока не прод)?
Аноним 06/02/23 Пнд 18:21:52 2601362 203
>>2601354
P.S. База ни разу не purge'лась, это достоверный факт. Уверен, что не"удалённой" инфы там метров под 300 максимум.
06/02/23 Пнд 18:53:47 2601409 204
универсальный тред для всех БД - это изложение теоретических основ ?
06/02/23 Пнд 19:05:01 2601430 205
Аноним 07/02/23 Втр 21:44:33 2602973 206
>>2530219 (OP)
pg - нужно получить количество уникальных сочетаний 2 колонок. У меня получились такие варианты:
1)
SELECT COUNT(*) FROM (
SELECT DISTINCT customer_id, ship_country
FROM orders
) q;
2)
SELECT COUNT(DISTINCT concat(customer_id, ship_country)) FROM orders;
3)
SELECT COUNT(DISTINCT customer_id || ship_country) from orders;

Остался вопрос - а какой из них лучше/правильней?
Аноним 07/02/23 Втр 21:48:37 2602980 207
>>2602973
Смотри планы запросов через EXPLAIN ANALYSE. Если нет composite индека на обе колонки, создай.
Аноним 08/02/23 Срд 03:15:13 2603189 208
Жесть SQL какое кривое дерьмо. Чтобы выбрать первые строки в каждой группе в пандах мне нужно просто за юзать first на group by объекте. Чтобы сделать тоже самое в sql нужны какие-то ебучие функции на 10 стейтментов. Пиздец конечно. Вообще реально нужно это все для sql учить? Нельзя ли просто вытянуть информации в сыром формате и потом процесинг делать в пандах?
Аноним 08/02/23 Срд 05:45:19 2603207 209
>>2603189
Юзай что хочешь. Думаешь, нам не похуй?
Это тебя взгреет твой куратор, дорогой начинающий датасаентист. И без премии оставит. Не ты выбираешь СУБД, а СУБД выбирает тебя.

SQL строится на теории множеств, а у элементов множества не определен порядок. Поэтому дwindow functions появились сравнительно поздно.

Между прочим, в pandas тебе придется все загрузить в ОЗУ.
Аноним 10/02/23 Птн 21:38:34 2606700 210
>>2601362
https://stackoverflow.com/questions/4031484/how-to-purge-the-database-data-and-log-files-in-mysql
https://stackoverflow.com/questions/2646373/mysql-data-file-wont-shrink
SUKA BLYAT https://www.youtube.com/watch?v=B8Fi5innpsg , тогда какого хуя этим говном вообще пользуются, если за этой Марией ДолБоёбовной в принципе невозможно почистить? Остались ли вообще ещё какие-то нежрущие, но масштабируемые СукБД?
Аноним 11/02/23 Суб 00:12:42 2606808 211
>>2606700
честно говоря никогда не понимал зачем кто-то пользуется mysql когда есть и всегда был postgres, который лучше нее буквально во всём. ладно бы он был платный или заточен только под какую-нибудь странную ось типа фрибсд, или сложен и дик в настройке и обслуживании, но нет же, он бесплатен и прекрасно устанавлоивается и работает везде, и без этих ебучих недокостылей которые в мускле всю дорогу. по каким таким причинам mysql вообще жив для меня загадка вот уже 20 лет как.
Аноним 11/02/23 Суб 00:19:10 2606812 212
>>2602973
>>2602980
тут никакой эксплейн не нужен, первый вариант лучше однозначно.
concat вообще не immutable функция и индекс на нее не построишь, каждый раз будет тупо по всей таблице хуячить складывая строки
Аноним 11/02/23 Суб 13:05:36 2607222 213
Подскажите, как написать запрос, который будет сортировать фамилии по количеству гласных? Нихуя че-т не получается
Аноним 11/02/23 Суб 13:34:33 2607274 214
>>2607222
Order by length(regexp_replace(lower(yourcolumn), '[^aeiouyаэиоюуеёюя]', '', 'g'))

Но это твомедленный и тупой способ.
Аноним 11/02/23 Суб 20:02:41 2607777 215
>>2606808
- в mysql появилась репликация. раньше чем в postgres.
- в mysql есть query cache, которого никогда не будет в других субд
- проект может быть корнями из веба или порождением веб-программистов
- mysql как часть дистрибутива чтобы было полегше.
Аноним 11/02/23 Суб 20:05:51 2607782 216
>>2606700
>Есть дамп MariaDB (текстовый файл с расширением sql)
>если за этой Марией ДолБоёбовной в принципе невозможно почистить?

ты осознаешь, что база в sql содержит ровно те данные, которые туда положили и НИКАКИХ СОВСЕМ НИКАКИХ данных обусловленных накладными расходами или внутренними потребностями mysql?

То есть, гуглишь какую-то хуйню и бомбишь без повода, только из-за плохого понимания СУБД вообще
Аноним 11/02/23 Суб 21:13:40 2607819 217
>>2607777
> - в mysql появилась репликация. раньше чем в postgres.
ну это же ложь. я не знаю как сейчас, но в мускле нормальной репликации не было никогда, даже в тот момент когда ее оракл купил. в постгресе же репликация всевозможных видов была еще 20 лет назад

> - в mysql есть query cache, которого никогда не будет в других субд
опять ж ерунда, querycache в постгресе есть уже без малого 15 лет как

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

> - mysql как часть дистрибутива чтобы было полегше.
насчет "полегче" я сомневаюсь что мускл лучше постгреса в этом отношении.
Аноним 13/02/23 Пнд 17:46:32 2609955 218
>>2607274
а как это можно реализовать на t-sql? Там нет regexp_replace
Аноним 13/02/23 Пнд 19:37:21 2610090 219
>>2609955
Тогда ещё более тупой способ:
Order by (length(yourcolumn) - length(replace(replace(replace(..., 'i', ''), 'e', ''), a'', ''))) - вложенных реплейсов столько, сколько гласных.
Ну либо писать хранимую функцию, которая посимвольно обойдёт строку и вернёт количество гласных.
Аноним 14/02/23 Втр 16:58:55 2611163 220
>>2607222
Делаешь подзапрос, который вернёт два столбца - id и кол-во гласных, с помощью него выводишь из основной таблицы данные через order by
Аноним 16/02/23 Чтв 04:28:39 2612970 221
Анон, хоть и не совсем тематик, но может не пошлёте нахуй...
Вопрос по graphql. делаю запросы к api.github.com - всякие фильтры для запросов тестирую.
Хочу выложить свой проект в репозиторий для портфолио, но само собой не хочу держать в репер свой токен от гитхаба.
Могу ли я для незарегистрированного, по сути локального, приложения прикрутить oAuth гитхаба? не могу найти пока ничего годного, кроме как сделать инпут текста, куда пользователь будет вручную вводить свой токен.
Спасибо
Аноним 16/02/23 Чтв 17:56:19 2613515 222
изображение.png 68Кб, 416x320
416x320
ОЧЕНБ ВАЖНЫЙ ВОПРОС
кто здесь кто? Почему именно эти животные на логотипе программы Dbeaver ?
Аноним 16/02/23 Чтв 18:34:07 2613579 223
>>2613515
Вероятно тот самый бобёр, отсосат гитхабовский и слон в качестве постгреса? Почему так, спрашывай у упоротых десигнеров.
Аноним 16/02/23 Чтв 20:16:39 2613692 224
>>2613579
а где остальные животные? где Танк Абрам - символ Interbase ?
Аноним 16/02/23 Чтв 20:18:31 2613699 225
изображение.png 857Кб, 1200x732
1200x732
>>2613692
>Абрам

Блять, извините, Абрамс. Но так тоже неплохо было бы
Аноним 16/02/23 Чтв 22:38:48 2613827 226
>>2613692
Да хоть бы дельфинчик mysql...
Аноним 17/02/23 Птн 02:08:38 2613942 227
>>2613515
Вот как ты такую хуйню замечаешь? Сколько ни юзал - узнал о животных только после твоего поста.
Аноним 19/02/23 Вск 05:38:26 2616200 228
Есть кто? Как в postgresql реализовать ранжированный поиск по условиям в секции WHERE?
Аноним 19/02/23 Вск 06:16:15 2616203 229
>>2616200
Тебе не WHERE нужен, а ORDER BY.
Аноним 19/02/23 Вск 06:40:19 2616211 230
>>2616203
Хорошая мысль! А то я как-то изгалялся с вложенными запросами и SELECT (conditions_sum) AS myrank, чтобы потом можно было ORDER BY myrank, потому что в 1 выборке не получалось... А так в 2 раза короче. И секция WHERE освобождается. )
Аноним 19/02/23 Вск 07:25:41 2616222 231
А как быть с повторяющимися вычислениями для каждой записи? Положим, по выражению (column150+column2+4) нужно и упорядочивать, и образовывать новый столбец. Чтобы вместо SELECT ,(column150+column2+4) FROM table ORDER BY (column150+column2+4) -- можно было написать выражение однократно; к тому же я не уверен, что оптимизация догадается не считать такое дважды.
Аноним 19/02/23 Вск 07:27:30 2616224 232
SELECT ★,(column1★50+column2+4) FROM table ORDER BY (column1★50+column2+4)
Аноним 19/02/23 Вск 07:30:56 2616225 233
>>2616222
Вынеси в подзапрос.
select ⚹ from (
select ⚹, column1⚹50 + column2+4 as tempresult
) order by tempresult
Аноним 20/02/23 Пнд 09:07:18 2617431 234
Вопрос на засыпку. У вас есть красивый инструмент для работы с БД, скажем datagrip от джет браинс и у вас есть таблица без PK. В гуе инструмента вы выбираете конкретную строку и удаляете. Что повашему сделает datagrip? Он удалит одну выбранную строку или несколько? Если несколько то какие?
Аноним 20/02/23 Пнд 09:12:40 2617432 235
>>2617431
> у вас есть таблица без PK
В смысле? Это вообще законно?
Аноним 20/02/23 Пнд 09:38:12 2617442 236
>>2617432
Но ведь может быть. Пишу простенький дб админ в качестве пета. Вот бумаю в таких случаях предупреждать и удалять все нах что совпадает по столбцам.
Аноним 20/02/23 Пнд 10:48:36 2617461 237
Нужнен пак дипломов сканированных (любых) кто поделится?
Аноним 20/02/23 Пнд 13:24:59 2617573 238
>>2617442
В оракле есть ROWID, который стопудово будет в любой таблице уникальным, даже если значения всех полей совпадают. Вот по нему удобные инструменты и работают. Не знаю, есть ли подобное в постгресе.
Аноним 20/02/23 Пнд 13:47:01 2617593 239
>>2617573
Наверно у всех бд есть скрытый rowid или cid, но проблема в том
что сможешь ли сделать
DELETE FROM some_table WHERE rowid = 1;
Аноним 20/02/23 Пнд 13:55:27 2617601 240
Аноним 21/02/23 Втр 12:08:43 2618487 241
Сложно и долго ли будет освоить sql до нормального уровня использования, если я ничего о нём не знаю, но нормально знаком с ORM (Django ORM)?
Просто есть ограничения по времени и поэтому думаю, стоит ли отвлекаться и углубляться в эту тему или просто пока продолжать использовать орм
Аноним 21/02/23 Втр 15:52:50 2618740 242
>>2618487
часа два достаточно
Аноним 22/02/23 Срд 11:18:30 2619471 243
изображение.png 81Кб, 1186x315
1186x315
Двач, помоги! Имеем ODBC API и полное непонимание спецификации Microsoft. Нужно создать базу данных MySql с таблицей. Я просто не понимаю что нужно писать дальше после строки подключения и необходимых библиотек, которых тут минимум. Какие функции юзать?
Аноним 04/03/23 Суб 17:49:49 2629647 244
IMG202303041746[...].jpg 51Кб, 792x647
792x647
Анон, зачем создавать второй алиас на ту же таблицу? Алсо почему мы декларируем столбцы в а. таблице, но не делаем этого в таблице b.? прохожу собесы на железячника/сисадмина/эникея, но почти везде указан скуль, решил изучить его.
Аноним 04/03/23 Суб 18:24:47 2629703 245
>>2629647
> зачем создавать второй алиас на ту же таблицу?
Это self join, из одной и той же таблицы делаются две выборки, и каждой записи из первой выборки ставятся в соответствие ВСЕ записи из второй выборки. Получаются все возможные комбинации записей из первой и второй выборки (декартово произведение), например, если в таблице 3 записи, в итоге будет 9 записей. Дальше применяется where, чтобы отфильтровать результат.
> почему мы декларируем столбцы в а. таблице, но не делаем этого в таблице b.?
Это не декларирование, а просто список значений, которые надо вернуть в результате запроса, чтобы не возвращать все столбцы. В самом запросе можно использовать все столбцы из всех таблиц, из которых производится выборка.
Аноним 05/03/23 Вск 01:56:28 2630109 246
мне одному хочется пиздить палкой тех, кто используется синтаксис запятой вместо явного CROSS JOIN?

бтв есть ли какая-то тулза, которая бы автоматически ставила пробелы для выравнивания селекта по AS?
Аноним 05/03/23 Вск 02:07:28 2630112 247
>>2630109
> мне одному хочется пиздить палкой тех, кто используется синтаксис запятой вместо явного CROSS JOIN?
Не одному. Я никогда не пользовался джойнами, всегда писал селекты из десятка таблиц через запятую, потому что мне похуй, потому что могу.
Аноним 05/03/23 Вск 05:08:24 2630147 248
>>2630109
Псину свою палкой пизди.
Аноним 05/03/23 Вск 10:29:11 2630224 249
>>2630109
> используется синтаксис запятой вместо явного CROSS JOIN?
И в чем принципиальная разница?
Аноним 05/03/23 Вск 13:46:31 2630333 250
>>2630224
Да ни в чем, только вопрос предпочтения и удобстве чтения кода
Аноним 06/03/23 Пнд 10:04:18 2631237 251
>>2592889
Есть такая тема как SCD паттерн.
Можно реализовать по-разному. На практике приходилось юзать такой подход: в таблицу добавляются доп поля - id, active_from, active_to (таймпстампы), is_active (bool). id - это id записи. post_id - это id сущности. Соответственно когда ты в первый раз добавляешь запись с каким-то post_id, она становится единственной активной записью с этим post_id. Когда ее "изменяешь" - в первую запись проставляется текущая active_to и снимается галочка с is_active. И добавляется новая запись с тем же post_id, но с другим id и с галочкой is_active = true и соответственно с другими данными в полях. Таким образом у тебя всегда одна актуальная (активная) запись под каким-то post_id, и ты так же можешь посмотреть все изменения. Норм тема, но там возникает ебля с уникальностью и со связями, поэтому fk вряд ли нормально удастся навесить.
Аноним 06/03/23 Пнд 12:04:48 2631375 252
>>2629703
> Это не декларирование, а просто список значений, которые надо вернуть в результате запроса, чтобы не возвращать все столбцы.
Не уверен, что правильно тебя понимаю. На скрине окно которое показывает правильный ответ. Почему в нем есть a.First_Name a.Last_Name, но нету b.First_Name b.Last_Name ?
Аноним 06/03/23 Пнд 15:55:57 2631616 253
Чуваки, а существует ли способ в качестве имени таблицы использовать значение, полученное из другого запроса?

То есть, представим, что существует таблица с именем tables, в которой хранятся имена других таблиц (table_1, table_..., table_n) и их ID (1, ..., n). В этих других таблицах - не важно, что содержится.
Мне нужно получить содержимое таблицы с ID 1, не зная имени этой таблицы.
Я могу это сделать в два действия:
сделать сначала
select name from tables where ID = 1
, посмотреть название таблицы с ID = 1 и затем сделать
select from table_1

А можно ли это выполнить в одном запросе? Что-то вроде:
select
from (select name from tables where ID = 1) (это выглядит как запрос из подзапроса, но мне нужно не это. Мне нужно использовать полученное значение именно в качестве имени (части имени) таблицы/БД).
Аноним 06/03/23 Пнд 15:57:22 2631618 254
Аноним 06/03/23 Пнд 16:02:26 2631625 255
Аноним 06/03/23 Пнд 16:03:45 2631627 256
>>2631616
Делай в два и не выебывайся, вменяемого решения нет.
Аноним 06/03/23 Пнд 23:35:28 2632151 257
>>2631616
Ты напроектировал какую-то хуйню, не надо в именах таблиц хранить логику
Аноним 06/03/23 Пнд 23:51:14 2632161 258
>>2632151
А вдруг он пишет свою платформу наподобие 1С с велосипедным словарём данных, где можно налету создавать таблицы мышкой в конфигураторе.
Аноним 07/03/23 Втр 11:54:43 2632386 259
>>2607782
>ты осознаешь, что база в sql содержит ровно те данные, которые туда положили и НИКАКИХ СОВСЕМ НИКАКИХ данных обусловленных накладными расходами или внутренними потребностями mysql?
А её рабочий вариант в InnoDB - содержит, и аналога VACUUM из PostgreSQL там нет. И вообще из популярных SQL-движков без костылей такое только в PostgreSQL и SQLite нашлось.
>То есть, гуглишь какую-то хуйню и бомбишь без повода, только из-за плохого понимания СУБД вообще
Да просто на работе OpenNebula юзают, а там и в актуальной-то постгре(с) в альфе, а в нашем говне мамонта только МарияДолБоёбовна и SQLite. Хоть бери и ЁбаньЁбалу на клиторе клипере переписывай.
Аноним 08/03/23 Срд 22:49:23 2634263 260
Хуй знает, кто вообще юзает MySQL/MariaDB в проде. У всех вокруг постгрес да оракл, а про мускл слышно только от студентов с лабами.
Аноним 09/03/23 Чтв 18:23:37 2634895 261
почему моя ебаная таблица sqlite не может блять прсото взять и обновиться сука я перепробовал кучу программ и нихуя не обновляется СУКА СУКА СУКА
Аноним 09/03/23 Чтв 18:44:18 2634913 262
>>2634895
Чё. Где подробности.
Аноним 09/03/23 Чтв 19:10:22 2634925 263
>>2634895
Наверняка не закоммитил.
Аноним 15/03/23 Срд 18:47:20 2641383 264
Посоветуйте бд и субд.
У меня фирма работает на нескольких площадках.
Соответственно есть таблички в экселе вида - код работ, наименование работ, объем, срок и тд.
Я хочу в одном месте иметь доступ к этим табличкам и делать всякие запросы - поиск работ по коду среди разных площадок. И так же добавить пару столбцов, где отмечать сколько % выполнено и когда, чтобы можно было делать запросы типа - выведи все работы сделанные в марте.
Что-нибудь легкое, на пару тысяч строк.
Я просто был тут на заводе и видел как у них есть подобная тема. Там видимо на серваке лежид бд, а они через мозилу туда заходят. Мне было бы удобно, чтобы как гугл драйв это работало, когда на паре компов ставишь синхронизацию и все файлы через одно облако синхронизируются. Так что и локально без интернета можно на любом пк глянуть и при наличии интернета все обновляется. Опционально, чтобы можно было постучаться в бд через браузер(скажем дать человеку пароль и он зайдет посмотрит отчеты).
Ну наверное можно было бы и просто в экселе все в общую таблицу свести, но хочется прям красивую удобную штуку с норм интерфейсом, заточенным под работу с бд.
Аноним 15/03/23 Срд 21:44:38 2641552 265
>>2641383
Тебе ведь не БД/СУБД нужна, а некое приложение, где отображаются различные таблицы а-ля 1С? Внутри оно понятное дело будет использовать какую-нибудь СУБД, но ни один пользователь непосредственно с БД работать не будет, только с некой прослойкой-приложением, которая подключается к БД.
Аноним 15/03/23 Срд 22:38:51 2641602 266
>>2641552
Наверное так и есть. То есть где-то будут валяться таблички с приведенными данными. А мне нужно окошко, где я могу делать запросы и мне красиво все будет выводиться.
То есть я вот видел у челов - в мозиле открывают что-то и там есть поля для ввода и кнопка вывести.
Скажем ввожу - площадка 1 и мне выводит все работы на площадке 1. Ввожу код 2 и мне выводят все работы с кодом 2 со всех площадок. Ввожу площадка 3, код 5 и получаю только эту работу с данной площадки. Это самое базовое, что мне надо. А то в экселе, либо нужно с 10 таблиц сверять, либо если загнать все в одну таблицу, то тоже данные не выводятся в подряд, а скачешь по таблице. Неудобно.
И я хз как это описать, но бонусом было бы здорово иметь вложенность данных. Вот допустим у меня есть поле объем и поле выполнено. И вот в поле выполнено нужно иметь возможность вводить несколько данных. Типа сделал 20%, забил в табличку, там отметилось время. Потом через недельку делал еще 20%, забил в табличку, там отметилось время. То есть не перезаписывать 20 на 40%. А потом можно было бы по вот этому времени делать запрос - работы в марте и там вот выводит, что 20% такой-то работы сделано в марте.
Аноним 16/03/23 Чтв 00:25:01 2641706 267
>>2641602
То есть ты хочешь чтоб тебе написали приложение
Аноним 16/03/23 Чтв 01:11:46 2641728 268
>>2641602
Скорее всего, есть какое-нибудь готовое решение, то ли небольшая ERP, то ли трекер задач наподобие Jira. Здесь вряд ли такое посоветуют, можно поспрашивать в /biz/ или /s/.
Аноним 16/03/23 Чтв 01:15:08 2641731 269
Антон, что ты думаешь о ydb? Вроде выглядет как ультра годнота для высоких нагрузок. Сама горизонтально шардирются, реплицирутся и восстанавливается Типа наебали CAP теорему
Но она уже год в опенСорсе и нет особых упоминаний
https://habr.com/ru/company/yandex/blog/660271/
Аноним 16/03/23 Чтв 05:40:52 2641784 270
>>2641731
>ydb
>ультра годнота для высоких нагрузок
А тебе это зачем? Это поделка яшки, которая никому не нужна. Где ты будешь искать ответы на вопросы, когда у тебя в проде начнутся проблемы? Бери постгрес и не выебывайся.
Аноним 16/03/23 Чтв 07:25:08 2641800 271
>>2641706
Нет, я хотел сам сделать. Я думал, что уже есть нечто подобное. Ну или может есть какой-нибудь конструктор, где можно полей наформошлепить и потом прописать им пару пару действий. Типа как для сайтов есть такие штуки. Не изучать же С++ ради этого.
Аноним 16/03/23 Чтв 10:26:26 2641852 272
>>2641800
Миллион таких конструкторов есть. Если у тебя эксель, то самым ближайшим конструктором является Access
Аноним 16/03/23 Чтв 10:29:48 2641853 273
>>2641852
Да и в самом экселе есть возможность встраивать формы
Аноним 16/03/23 Чтв 10:41:10 2641857 274
Господа, помогите нюфагу.
Делаю сервер онлайн дрочильни, нужно реализовать схему инвентаря в бд. Хуй знает как сделать так, чтобы производительность не падала.
Думал сначала так:
1. таблица с игроками
2. таблица со всеми возможными предметами в игре
3. таблица принадлежности конкретного предмета к конкретному игроку

Хуйня же полная, да?
Аноним 16/03/23 Чтв 11:13:21 2641885 275
123.jpg 34Кб, 1047x277
1047x277
>>2641852
Ясн, аксес я краем глаза видел, выглядит хуево, но вроде то, что надо.
Подскажи, а как вот эта вложенность реализовывается про которую я писал? В моем представлении получается, что ячейка с выполнением работ ведет к таблице, куда заносится процент выполнения и дата. Ну и получается что к каждой строке в таблице будет еще по таблице прилагаться.
Аноним 16/03/23 Чтв 11:37:43 2641909 276
>>2641857
> Хуй знает как сделать так, чтобы производительность не падала.
Не использовать реляционные БД, они плохо для такого подходят. В нагруженных онлайн-дрочильнях часто пишут что-то своё, к примеру, держат всё в ОЗУ и раз в несколько минут сохраняют состояние на диск. Это не банковские системы и не мессенджеры, где без ACID-транзакций никак.
Аноним 16/03/23 Чтв 13:38:12 2641975 277
>>2641857
Вообще, правильным решением будет не использовать реляционную бд, как и сказал анон выше. Но в общем случае в твоей задаче делают табличку с предметами и ассоциативную табличку со столбцами вида player_id, item_id, items_amount. Сделаешь индекс на player_id, и скорость будет сносная.
Аноним 16/03/23 Чтв 14:37:15 2642047 278
Аноны,помогите пожалуйста.
Как правильно и безопасно хранить ssh ключ,если мне необходимо хранить его в базе данных?
Аноним 16/03/23 Чтв 14:41:51 2642053 279
>>2642047
Солишь и хешируешь пароль и шифруешь этим ключ.
Аноним 16/03/23 Чтв 14:47:23 2642058 280
>>2642053
Но он же спрашивал про правильно и безопасно...
Аноним 16/03/23 Чтв 14:49:24 2642060 281
>>2642058
Приватные ключи выдавать кому-то на хранение вообще небезопасно, их надо хранить на флешке в анусе.
Аноним 16/03/23 Чтв 15:00:03 2642068 282
Необходимо вставить вычисляемое значение, например:
(f'В {file_name} наименоваия файлов не совпадают со списком {path_file}. Список наличия в {path_file} следующий: {result_1}')
Как сделать такое значение в insert sql?
Аноним 16/03/23 Чтв 15:10:38 2642077 283
>>2642068
Значение вычисляется на питоне, БД - postgres, тип поля varchar(10000)
Аноним 17/03/23 Птн 08:36:28 2642774 284
oracle-1.png 27Кб, 1659x913
1659x913
Сколько по вашему мнению пикрил продержится в РФ? Крупный ритеил и банки юзали ораклу для OLTP, особо одаренные для хранилища. Я три года процедуры и обвязку писал для ораклов, но уже полтора года сижу на другом стеке.

Постгре это действительно не Оракл, но все идёт к этому. Пока кредитные конвейеры ссыкуют использовать Постгре, кстати.
Аноним 17/03/23 Птн 08:44:04 2642778 285
Аноним 17/03/23 Птн 13:16:16 2642925 286
>>2642774
>Сколько по вашему мнению пикрил продержится в РФ?
все зависит от политической обстановки, могут вылететь в одночасье как гугл
Аноним 17/03/23 Птн 13:18:29 2642930 287
>>2642774
>Крупный ритеил и банки юзали ораклу для OLTP
государству на них поебать, а после 2014 использование ораклов и прочих других не опенсорц решений в ящиках свелось к нулю. так что если надо будет выпнут за неделю признав какими-нибудь экстремистами.
Аноним 17/03/23 Птн 13:22:28 2642935 288
>>2642774
>Пока кредитные конвейеры ссыкуют использовать Постгре, кстати
ну в околобанковской теме принцип не трогай если работает охуеть какой мощный. попрой просто накатить патч безопасности - это уже охуеть какой бюрократический квест. так что если административных мер не будет то оракл протянет в рф еще ооочень долго.
Аноним 17/03/23 Птн 17:58:25 2643304 289
image.png 59Кб, 700x228
700x228
image.png 7Кб, 964x52
964x52
Аноны, нужен хелп молодому,
Начал читать книжку по PostgreSQL, там нужно импортировать учебную бд, но у меня чёт не получается, пробую по гайду из книги в psql ничего не происходит, пытался просто через cmd, ругается, думаю, что где-то чёт не правильно пишу либо не дописываю, не могу понять где
Аноним 17/03/23 Птн 18:03:28 2643315 290
из sqlite в postgresql как перенести данные?
Аноним 17/03/23 Птн 18:18:01 2643362 291
>>2643304
В пути пробелы, в кавычки надо брать, дурень.
Аноним 17/03/23 Птн 18:44:20 2643389 292
image.png 5Кб, 966x44
966x44
image.png 8Кб, 964x59
964x59
>>2643362
Ну я вроде пытался, но чёт не помогает
Аноним 17/03/23 Птн 19:18:27 2643426 293
>>2643389
А ехе где? Кавычки только двойные в шинде.
Аноним 17/03/23 Птн 19:42:52 2643442 294
>>2643426
куда exe ?)
"C:\ProgramData\Microsoft\Windows\Start Menu\Programs\PostgreSQL15" -U postgres -f demo_small.sql
Аноним 17/03/23 Птн 19:53:31 2643449 295
>>2643442
Может нахуй тебе тот посгрес, а?
Аноним 17/03/23 Птн 19:54:12 2643450 296
>>2641731
>Типа наебали CAP теорему
именно так.
Но дело в том, что она особо никого и не волновала кроме контор уровня Яндекса.
Аноним 17/03/23 Птн 21:53:32 2643544 297
Scoundrel-in-th[...].jpg 580Кб, 807x1200
807x1200
сап, сосач. Есть какие-нибудь родмапы или гайды вката в аналитику данных? и почему нет треда аналитиков?
Аноним 17/03/23 Птн 21:57:38 2643546 298
>>2643544
Ты не в том треде спрашиваешь, тебе ближе этот: >>2484578 (OP)
А здесь дрочат сами базы данных независимо от применения.
Аноним 17/03/23 Птн 22:17:11 2643570 299
YTz9ERTp7LQ.jpg 280Кб, 780x1080
780x1080
>>2643546
о, спасибо, анонасик
Аноним 20/03/23 Пнд 12:47:26 2646454 300
Снимок экрана о[...].png 8Кб, 446x59
446x59
Господа Аноны, помогите плиз, делаю запрос к учебной бд, всё намертво зависает, спасает только ребут компика(сижу на Ubuntu), относится не только к конкретно этому запросу, но и почти ко всем, где пытаюсь как-то взаимодействовать с 2+ таблицами(
Аноним 20/03/23 Пнд 15:22:25 2646593 301
>>2646454
Почитай про джойны.
В данном случае ты делаешь кросс джойн, то есть все комбинации записей первой таблицы со всеми из второй.
Если их много, то результат будет очень большой и оно обосрется, что видимо и происходит.
Аноним 20/03/23 Пнд 16:39:56 2646666 302
Всем привет! Вопросы:
есть ли какое-либо общее правило когда следует создавать отдельную таблицу?

Например есть таблица с пользователями, у пользователя может быть статус pro (true / false) и описание к статусу

Понятно что таких пользователей будет не много (4 из 1000) и соответственно хранить это пустое поле у всех кажется лишним.

Это тот случай когда лучше вынести статус в отдельную таблицу?
Аноним 20/03/23 Пнд 16:45:22 2646670 303
>>2646666
И вот ещё: где лучше хранить пользовательские роли (admin, moderator, user, etc.), в отдельной таблице или прямо в таблице users?
Аноним 20/03/23 Пнд 18:44:12 2646829 304
>>2646666
>>общее правило когда следует создавать отдельную таблицу?
гугли нормальные формы

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

>>где лучше хранить пользовательские роли
>>в отдельной таблице или прямо в таблице users?
отдельно таблица с ролями
в users только ид роли
часто есть еще таблица permissions с доступами и role_permissions указывающая какая роль какие доступы имеет
Аноним 20/03/23 Пнд 20:05:56 2646949 305
>>2646829
Спасибо за наводку, а то в учебниках про это ни слова, только операторы и прочее, в общем база

Сейчас сам нормализуюсь

> отдельно таблица с ролями
в users только ид роли

Почему так? Это же увиличивает время выборки ещё, так у нас в пользовательской модели всё будет, а так придётся подтягивать ещё одну таблицу(цы)
Аноним 20/03/23 Пнд 22:15:49 2647093 306
>>2646949
>>Почему так?
1.
роль/полное_название_роли/описание_роли - зачем все это в юзере? Этих полей может не быть сейчас, но появятся позже. А менять такие таблицы со временем все дороже.

2.
Если уверен что роли точно не будут создаваться без изменения кода - можно и просто какой нибудь enum воткнуть в роль (по факту в базе это varchar). string вместо enum не стоит - одна ошибка и ты ошибся, так хоть какой то контроль.

>>так у нас в пользовательской модели всё будет
Роли без пользователя не нужны? Пользователь без роли не нужен? Будешь каждый раз прописывать каждое нужное поле для выборки? Толстые модели тоже имеют свои минусы.

>>увиличивает время выборки
Если у тебя йоба хайлоад там немного другие правила и НФ3 идет лесом, но обычно таких требований нет и париться о таких вещах излишне.
Аноним 23/03/23 Чтв 15:40:02 2650101 307
Не ругайтесь, я нуб, под сраку лет решил в это как там его, ваше айти вкатиться немного

Вот есть задача по SQL List all the cities west of Chicago, ordered from west to east

SELECT * FROM north_american_cities
where longitude <= -87.629798
order by longitude


Я такое решение написал. А можно каким-нибудь оператором, не вбивая ручками долготу -87.629798, написать, типа: "посмотреть у города Чикаго значение долготы" и уже с ним работать?
Аноним 23/03/23 Чтв 19:17:23 2650430 308
>>2650101
Через подзапрос.
SELECT * FROM north_american_cities where longitude <= (select longitude from north_american_cities where city_name = 'Chicago') order by longitude
Аноним 23/03/23 Чтв 19:37:38 2650449 309
>>2650430
Спасибо.

Ещё вот задание https://sqlbolt.com/lesson/select_queries_with_outer_joins
Find the list of all buildings that have employees

Я его решил так: SELECT distinct Building from employees
Но, подозреваю, что от меня другого хотели с этими джойнами?
Аноним 24/03/23 Птн 00:49:20 2650787 310
>>2650449
Там три подзадачи, решение с дистинктом по employees подходит для первого. Дальше надо вывести ещё инфу по численности и должностям и общему количеству рабочих мест, уже надо делать джойн.
Аноним 25/03/23 Суб 23:47:48 2652919 311
Короче, я тут понял, что тыкаясь вслепую через точечные запросы в гугл далеко не уеду. Так что решил сначала подучить в общем и целом. Я правильно понимаю, что самая основа основ это sql? То что мне гугл предлгает всякие питоны учить и тд, это уже потом.
Я просто ковырялся в аксесе и мне, кажется, что вместо тыкания всяких кнопок и хз чего еще, проще было бы просто код написать.
Аноним 27/03/23 Пнд 15:07:24 2654281 312
Надо объединить или убрать дубликаты у множества записей. При этом проверка на дублирование через функцию. И тождество не работает

A = B
B = C
A != C

И при этом они должны считаться дубликатами.
Чот не могу придумать
Аноним 27/03/23 Пнд 17:21:01 2654466 313
3WElj7iQeq.png 103Кб, 1238x495
1238x495
>>2654281
вобщем узнал про рекурсивные запросы. Вроде работает
Аноним 28/03/23 Втр 12:07:05 2655045 314
двачик, подскажи
нужно сделать запрос в БД (pgsql) и если значение, с которым я прихожу, больше значения в БД, нужно обновить запись БД
как это сделать в один запрос, а не два?
Аноним 28/03/23 Втр 14:01:31 2655164 315
>>2655045
UPDATE table SET field = value WHERE id = 1 AND field < value
Аноним 28/03/23 Втр 17:02:02 2655398 316
Аноним 28/03/23 Втр 17:02:23 2655400 317
Аноним 28/03/23 Втр 23:07:02 2655670 318
Сап, базаны. В одной из баз доставшихся по наследству обнаружил множество _dta_index _dta_stat. Все эти индексы IsHypothetical тру. Что вообще такое гипотетические индексы? Откуда они взялись? Как влияют на производительность? (Их сук много - в два раза больше чем изначальных, задуманных создателями базы и могут в включать в себя кучу колонок) Их можно безболезненно поудалять?
Аноним 28/03/23 Втр 23:33:48 2655687 319
>>2530219 (OP)
привет, подскажите пож
можно ли как-то объединить запросы
select id from 'table'
where col_1 = 'value1' and col_2 = 'value2' and col_3 = 'value3'
если нашли, то заменить значение одного из полей на другое
если не нашли, то заинсертить
извините, что так бездарно описал
Аноним 28/03/23 Втр 23:38:14 2655691 320
Аноним 29/03/23 Срд 00:02:32 2655717 321
>>2655691
вообще, кажется вот это то, что мне нужно:
INSERT INTO table (id, name, age) VALUES(1, "A", 19) ON DUPLICATE KEY UPDATE
name="A", age=19
только проблема в том, что я заранее не знаю id, но предполагается что комбинация name и age у меня будут уникальными
Аноним 29/03/23 Срд 01:17:22 2655752 322
>>2655717
Айди не нужен тут, он сам подхватится, ну если ты сделал это поле первичным ключом
Аноним 29/03/23 Срд 01:18:23 2655753 323
>>2655752
Ну и name + age уникальным ключом
Аноним 29/03/23 Срд 05:51:44 2655799 324
>>2592889
Это не совсем реляционка а типа "лейкхаус", но у нас на проде крутится delta lake - там как раз поверх Паркетов есть "дельта", т.е. полный транзакционный лог. Потом выше этой хуйни стандартные SQL-запросы можно гонять через Spark API (он дельту нативно поддерживает).
Аноним 29/03/23 Срд 18:25:31 2656510 325
image.png 7Кб, 313x235
313x235
>>2530219 (OP)
Аноны, подскажите, пожалуйста, как совершить запрос SQL.
Есть таблица (пик), Мне нужно получить строки apple серого цвета. Как можно это сделать? Я же не могу проверить столбец на два значения одновременно.
Аноним 29/03/23 Срд 18:55:19 2656527 326
>>2656510
Хуевый дизайн, это схема many-to-many. Т.е. нужны табилцы на продукты, проперти и связка продукт-пропертя.
Аноним 29/03/23 Срд 19:02:57 2656533 327
>>2656527
Вопрос не в дизайне. Таблицу не я создавал.
Аноним 29/03/23 Срд 19:12:23 2656549 328
>>2656533
Ну это надо как-то через жопу делать, потому что дизайн хуевый.
Надо у гопоты спросить, он там пошуршит по стековерфлов такие дурацкие вопросы.
Аноним 29/03/23 Срд 19:19:53 2656561 329
>>2656549
Такое кажет, вроде норм выглядит, но я не проверял.

SELECT DISTINCT t1.prodct_id
FROM your_table_name t1
JOIN your_table_name t2 ON t1.prodct_id = t2.prodct_id
WHERE t1.code = 'brand' AND t1.value = 'apple'
AND t2.code = 'memory' AND t2.value = '128';
Аноним 29/03/23 Срд 19:20:55 2656564 330
>>2656561
Хотя это должно ебово тормозить где больше полтора строчки, по-моему.
Аноним 29/03/23 Срд 19:25:45 2656572 331
>>2656510
попробуй так

select (product _id) from table where code='color' and value = 'Grey'
INTERSECT
select (product _id) from table where code='brand' and value = 'Apple'
Аноним 29/03/23 Срд 19:31:26 2656583 332
>>2656572
>>2656561
>>2656549
>>2656510
SELECT Product_ID FROM product_properties
WHERE PropertyCode = "Color" AND Value = "Grey"
AND ProductID IN (SELECT ProductID FROM product_properties WHERE PropertyCode = "Brand" AND Value = "Apple")
Аноним 29/03/23 Срд 19:40:15 2656596 333
>>2656583
Ну это суть тот же селфджойн.
Аноним 01/04/23 Суб 14:20:38 2659253 334
Postgres
Есть две таблички. Главная и подчиненная, связанная по внешнему ключу.
Ну и я удалял их каскадно, удаляешь главная, по внешнему ключу удаляются все подчиненные - все хорошо.
А теперь у меня есть задание написать другую апишку, в которой надо не удалять каскадно, а получать ошибку, если есть связанные таблицы.
Можно делать и то и другое на уровне постгреса? Или я обязательно должен в одном из сценариев делать два запроса на уровне приложения ?
Аноним 01/04/23 Суб 21:50:13 2659841 335
>>2563844
неактуальные данные из oltp скидываются в data warehouse
Аноним 01/04/23 Суб 22:01:30 2659852 336
>>2579253
был знакомый разраб который утверждал что за хранение логов в боевой базе нужно пиздить ногами
Аноним 01/04/23 Суб 22:19:11 2659862 337
>>2641383
в экселе все это есть пару десятков лет
совместный доступ, онлайн доступ и прочая поебота
Аноним 02/04/23 Вск 19:33:24 2660829 338
Я горе-фронтендер (на этом можно заканчивать), объясните по-фасту, какая есть альтернатива ручному вбиванию sql запроса в клиент для выбранного ЯП и ORM? Ну тупа как выглядит архитектура приложения использующего БД, если в нём используются какие-либо сложные выборки данных. Мб конкретные фреймворки погуглить, примеры приложений итд.
Аноним 02/04/23 Вск 20:47:33 2660876 339
>>2660829
Что такое "сложные выборки данных"? OLAP?
Альтернатива ручному вбиванию SQL - это и есть ORM, которые генерируют и выполняют SQL сами. Из минусов - надо очень хорошо знать SQL и кишки выбранной ORM, чтобы не выйти на проблемы, которых с голым SQL никогда не бывает.
Аноним 02/04/23 Вск 21:08:25 2660892 340
>>2660829
Что выглядит тупо? Почему sql выглядит тупо? Не пиши здесь хуйню больше
Аноним 02/04/23 Вск 21:20:13 2660904 341
>>2660876
Вот поступает запрос, нужно получить из бд пользователей, товары или что угодно. Допустим запрос сложный и включает несколько подзапросов. Мы прямо харкодим нужный запрос в виде sql, или есть какие-то приёмы/паттерны итд для абстракции таких деталей (кроме ORM)?
Аноним 02/04/23 Вск 21:25:23 2660907 342
Аноним 02/04/23 Вск 21:28:14 2660911 343
>>2660907
ну блин, прямо в программном коде начинается простыня "SELECT XUY FROM PIZDA WHERE ...". Если запрос большой и сложный, его прямо так и оставляют в виде строки, или существуют абстракции которые представляют запрос в ином виде?
Аноним 02/04/23 Вск 21:29:32 2660914 344
>>2660911
Пиздец, ты дебил
А если запрос будет в отдельном файле это не будет «захардкожено»?
Аноним 02/04/23 Вск 21:30:31 2660916 345
>>2660914
Это уже другой способ представления, я про это и спрашиваю
Аноним 02/04/23 Вск 21:32:16 2660918 346
>>2660904
Приложение должно так или иначе сформировать SQL и передать его СУБД. Ну какие тут могут быть абстракции? Можешь вынести запрос в файл или другой класс как константную строку, назвать это "Репозиторий" и на уровне логики обращаться к нему, логику дёргать из контроллера. Как код ни организуй, суть не изменится.
Аноним 02/04/23 Вск 22:02:20 2660939 347
>>2660916
Когда говорят «захардкодить», то это означает, что ты в код вставил какую-то константу, например логин или айди, к которым нельзя привязываться и это должно быть параметром конфигурации
Судя же по той дичи, которую ты пишешь, ты почемуто боишься sql-запросов как факта. Да, в концепции orm, подразумевается, что запросы руками не пишут, но это не жесткое требование, orm позволяют и писать вручную, если это необходимо. Ну и конечно же orm это не единственная концепция и код бывает пишут строго на чистом sql, слово “хардкодить” не уместно здесь ни в одном варианте
Аноним 02/04/23 Вск 22:09:30 2660945 348
Каковы реальные кейсы для NoSQL, поясните петучу который знаком только с теорией. Ну типа слабо структурированные данные хуёмоё, масштабируемость, ослабленные требования к транзакционности и согласованности, это понятно, но это общие слова. Реальный, конкретный кейс когда это надо, и почему.
Аноним 02/04/23 Вск 22:26:37 2660953 349
Capture.JPG 29Кб, 1023x225
1023x225
>>2660904
>>есть какие-то приёмы/паттерны итд для абстракции
Для джавы существуют QueryDSL, jooq например. В других языках наверняка есть аналоги.
Аноним 02/04/23 Вск 22:33:59 2660957 350
>>2660953
Вот я про такую херню примерно и спрашивал, это же просто билдер для обычных sql запросов, и уже смотрится прилично, глаза не вытекают. Как эта хуета называется? Хочу загуглить как в других языках и фреймворках это может выглядеть.
Аноним 02/04/23 Вск 22:35:29 2660958 351
6090319.jpg 186Кб, 1025x1500
1025x1500
>>2660945
Для каждого типа - свое.
clickhouse - для бигдаты
Neo4j - для связи сущностей, как в соцсетях
Redis - для кешей
Mongo - для фронтодебилов не осиливших sql сущностей с неопределенной структурой типа жсонов

Читай пикрил короче.
Аноним 02/04/23 Вск 22:42:19 2660962 352
>>2660957
Хз как это правильно называется, query builder какой-нибудь.
Аноним 02/04/23 Вск 22:43:51 2660963 353
>>2660945
Хранить логи и конфиги, реализовать кеши и очереди.
Аноним 03/04/23 Пнд 14:01:10 2661625 354
>>2660957
query builder тебе правильно подсказали https://youtu.be/x1fCJ7sUXCM?t=770
>уже смотрится прилично, глаза не вытекают
пиздец ты поридж конечно
Аноним 03/04/23 Пнд 15:02:06 2661721 355
image.png 15Кб, 943x397
943x397
Как хранить +- одинаковые данные в бд?

Например, есть несколько типов расписания - повторяющееся и на конкретную дату. У повторяющегося есть поле "дни недели", а у обычного "дата" (возможно ещё стоит добавить "тип", чтобы их различать).

Мне на ум такие варики пришли:
Хранить в реляционной бд с помощью entity–attribute–value.
Хранить в монгодб.
Хранить в двух разных таблицах.
Аноним 03/04/23 Пнд 18:47:58 2661944 356
сап двач. Помогите вкатуну. Есть бд на SQL, нужно из таблицы с ФИО вытащить имена всех сотрудников (FirstName), фамилия которых содержит, "er". Все идеально сделал, но на MySQL, а тут сижу ебу голову
Аноним 03/04/23 Пнд 18:56:50 2661952 357
>>2661944
ладно, я еблан. Отставить
Аноним 04/04/23 Втр 15:50:51 2662553 358
сап, двач
подскажи, как получить номер строки в pgsql без перебора всей таблицы? в таблице +100.000 строк, а оптимизация важнее двача
Аноним 04/04/23 Втр 15:56:10 2662562 359
>>2662553
Что значит найти номер строки? Ты не можешь его найти, потому что формулируешь плохо
Аноним 04/04/23 Втр 16:04:17 2662573 360
Аноним 04/04/23 Втр 17:52:24 2662666 361
>>2662562
как научиться формулировать лучше
Аноним 04/04/23 Втр 17:53:07 2662667 362
>>2662573
но тогда мне вернется вся моя таблица с порядковыми номерами, а мне нужен только порядковый номер одной строки
Аноним 04/04/23 Втр 18:24:00 2662732 363
>>2662667
Тогда номер строки будет равен 1.
Аноним 05/04/23 Срд 14:40:37 2663372 364
Есть те кто переходят/переходили на PostgreSQL? Работал два года с MsSQL и Oracle. Хочу устроиться на новое место как понимаю все сейчас переходят на Postgre. Насколько большая разница и какие трудности? И что по востребованности на рынке СНГ?
Аноним 06/04/23 Чтв 08:11:14 2663899 365
>>2660958
интересно отследить момент когда то что раньше называлось кешем начали называть базами данных.
Аноним 06/04/23 Чтв 20:52:37 2664507 366
>>2663899
Никогда?
Редис не является кешем сам по себе. Просто за счёт того, что он key-value и in-memory, поверх него часто реализуют кеши. Можно с тем же успехом взять реляционную СУБД, создать там временную таблицу, живущую в ОЗУ, и юзать её как кеш, но ведь никто не говорит, что ораклы/постгресы - это всего лишь кеш, а не СУБД.
Аноним 06/04/23 Чтв 21:22:33 2664560 367
>>2664507
разница не в технической реализации, а в методологии.
бд хранит данные, собранные в структуры, а рсубд более того, как модель, которой можно управлять с помощью математической теории множеств, а кеш хранит данные похуй как лишь бы быстро отдавать. поэтому когда у вас в приложении только монга, то у вас БД нет, а есть только кеш, который по недоразумению называется базой данных. с такой то логикой любой мусорный контейнер можно называть архивом временно ненужных вещей, хотя по факту это просто свалка мусора.
Аноним 06/04/23 Чтв 22:36:43 2664627 368
>>2664560
Если ты сам для себя решил, что база данных - это то же самое, что реляционная база данных, так тому и быть. Только объективная реальность от этого не изменится.
Аноним 07/04/23 Птн 16:47:18 2665152 369
1611894489520.png 7Кб, 1085x41
1085x41
1544588745777.png 10Кб, 1396x63
1396x63
Попробовал развернуть mysql server в docker-контейнере, и подключиться к нему снаружи из приложения на python. Калтейнер запустился (docker ps, пикрил 1), но при попытке запуска приложения вылезает ошибка пикрил 2, и я в душе не ебу, как это исправить.
Гуглил, там все решения для mysql, установленного на хосте, а с калтейнерами ни у кого такой ошибки видимо не возникало. Ну и решения соответственные, проверить брандмауэр, включить службу mysql, сделать бочку и т.д.
Что я делаю не так? Кто сталкивался? Как фиксить?
Аноним 07/04/23 Птн 17:21:12 2665196 370
>>2665152
Ты же сам прокинул на 33060 порт, довен.
Аноним 07/04/23 Птн 18:01:02 2665263 371
1566594563993.png 15Кб, 427x280
427x280
1604726900481.png 10Кб, 357x234
357x234
>>2665196
Прокинул, и че дальше? Не пускает и все.
Аноним 07/04/23 Птн 18:08:15 2665280 372
>>2665263
> port=3306
Иди в уборщики туалетов в макдональдсе, реально.
Аноним 07/04/23 Птн 18:18:47 2665289 373
Аноним 07/04/23 Птн 20:46:21 2665520 374
>>2665289
>>2665263
у тебя порт 33060 а ты пишешь 3306, вместо писанины ужеб 10 раз методом тыка попробовал, заодно порты б научился менять
Аноним 07/04/23 Птн 20:48:37 2665522 375
1646417012183.png 11Кб, 1394x50
1394x50
>>2665520
Причина была прозаична. Виндоус не сразу вкинул окно с разрешением доступа докера к сети. Стоило разрешить, все сразу заработало как надо (ну почти).
С портами все норм, пикрил.
Зашуганное, оттого усердно проецируещее свою работу в макдональдсе на окружающих, омежное чмо >>2665280 может попуститься.

мимо >>2665152
Аноним 07/04/23 Птн 22:20:49 2665614 376
Кто в контексте русскай бизнес-логики работает или работал и имеет опыт?
Вот что это значит (T-SQL):
> 2.1 Создать dbo.SKU (ID identity, Code, Name)
> 2.1.1 Ограничение на уникальность поля Code
> 2.1.2 Поле Code вычисляемое: "s" + ID

Я не понимаю хитрого замысла с 2.1.2 и, как вытекающее, 2.1.1. Зачем UNIQUE если ID is identity/PK, который гарантирует уникальность?
И что понимается под "Поле Code вычисляемое: "s" + ID". Про процедуры ничего не сказано, значит это должно быть на уровне Бд. Ну не ТРИГГЕР же для INSERT писать, сразу ссаными тряпками закидают.
Где хитрость?
Аноним 07/04/23 Птн 22:43:32 2665636 377
>>2665614
Уникальный констреинт автоматически создаёт индекс, и поиск по коду будет практически таким же быстрым, как по ID. Возможно, смысл в этом.
Вычисляемое поле - это computed column. Т.е. без явного написания триггера указываешь при создании таблицы что-то вроде:
Code AS (CONCAT('s', ID)) PERSISTED
Аноним 08/04/23 Суб 00:24:15 2665683 378
>>2665636
> Code AS (CONCAT('s', ID)) PERSISTED
А, даже не знал что так можно.
Аноним 08/04/23 Суб 00:58:08 2665693 379
>>2663372
>Есть те кто переходят/переходили на PostgreSQL? Работал два года с MsSQL и Oracle.
ну это как если бы ты привык покупать ливайсы на oipolloi и 911 nb, но обнищал и ты идешь и берешь штаны и боты из козжама с дырочками на лето в местном тц
как то так
Аноним 08/04/23 Суб 01:01:59 2665694 380
>>2663899
да вполне четко отслеживается вплоть до года когда начался nosql бум
связано это было конечно с тем как хтмл-макаки переоткрывали мир заново и для них на месте окна в который они полюбили лазать прорубили дверь
Аноним 08/04/23 Суб 01:05:11 2665695 381
>>2660945
>Реальный, конкретный кейс когда это надо, и почему.
если делаешь себе смузи и ходишь в модную кафешку на обед, то надо, если ходишь с тормозком на работу и отдыхаешь от компа на даче - то не надо
Аноним 08/04/23 Суб 01:07:44 2665696 382
>>2660876
тащем та смотришь сгенерированный sql если че не так получилось, хмыкаешь, исправляешь, если не получается, то смотришь план запроса, хмыкаешь, исправляешь
ничего сложного главное не боятся лезть в потроха
Аноним 08/04/23 Суб 01:10:53 2665697 383
>>2660829
ну до эпохи веб-макакинка альтернатива была активные гриды, ты накидывал элемент на формочку, че то там шаманил и у тебя рабочий грид
наверняка сегодня и в вебе есть полно таких конструкторов активных гридов и других активных элементов типа списков там и окошек ввода и прочее
Аноним 08/04/23 Суб 01:13:55 2665699 384
image.png 6Кб, 435x300
435x300
>>2665697
Великий и Ужасный TTable в Дельфи 7. Ностальджи.
Аноним 08/04/23 Суб 01:45:50 2665710 385
>>2663899
Кэш и сейчас есть, прослойка над PHP и SQL когда делать запрос к SQL не всегда иеет смысл
Аноним 08/04/23 Суб 03:40:04 2665717 386
>>2665699
Хуя тут дед 45-летний
Аноним 08/04/23 Суб 10:33:25 2665814 387
>>2665717
Борда 18+.
Сдрыстни, зумерок.
Аноним 08/04/23 Суб 14:39:31 2666153 388
>>2665814
В 45 на бордах не постят, а живут в загородных домиках и катаются на своей лодке.
Кто тут зумерок, если твоя жизнь что в 18 что в 45 не изменилась, лул
Аноним 08/04/23 Суб 14:43:45 2666160 389
>>2666153
Как будто у тебя изменится. Типичний ойти это тот же петрович, только тот гайки крутит, а тот в стул пердит и кнопки жмет.
Аноним 08/04/23 Суб 15:09:55 2666180 390
1572292921895.png 103Кб, 811x361
811x361
Нужно ли для таблицы WorksInOrders добавлять id или делать составной ключ из двух полей? Таблица, как можно заметить, реализует связь "многие ко многим", и я не понимаю, как я должен нормализовать ее.
Аноним 08/04/23 Суб 15:20:11 2666189 391
Аноним 08/04/23 Суб 15:28:36 2666192 392
>>2666189
https://app.dbdesigner.net/designer
Не рекомендую. Есть ограничение: можно сохранить только тот файл, в котором не больше 10 таблиц. Требует регистрации для этого, обновляет страницу (так что просто оставить открытую вкладку не получится) - классика анального говносервиса.
Аноним 08/04/23 Суб 15:53:19 2666204 393
Аноним 08/04/23 Суб 16:25:41 2666234 394
>>2666204
Спасибо, конечно, реально полезно. Но а че по нормализации таблицы можешь сказать?
Аноним 08/04/23 Суб 16:43:16 2666242 395
>>2666234
Без понятия, я вообще SQL только начал изчать. У тебя там разве уже не 3FN?
Аноним 11/04/23 Втр 14:54:57 2669016 396
Я правильно понял, что OUTER JOIN сохраняет все атрибуты ЛНВОЙ/Правой таблицы (включая PK, IDENTITY, NOT NULL, UNIQUE) но все "внешние" результаты присоедененной таблицы автоматически будут can be NULL?
Аноним 11/04/23 Втр 20:21:41 2669443 397
как вообще навигацию освоить? штук 20баз, и таблиц по 200 в каждой, в некоторых тыщи, в работе используются штук 50 день через день, где поиск в этой хуйне pgadmin? есть хоть какой то поиск по описанию строк\таблиц?
неужели все это надо держать в голове и тыкать вручную первый раз
алсо поотрубал бы руки, здесь gps_name там name_gps в другой уже names в четвертой imenagps все друг с другом взаимодействует, у этой хуйни код не подсвечивается, только начал вникать а уже чувствую себя дедом из 2007
Аноним 12/04/23 Срд 07:07:13 2669744 398
>>2669443
Так у нормальных БД есть документация по которой искать можно
Или в норм компаниях есть специальный человек который шарит за всю структуру БД но к сожалению у нас почему-то не принято чтобы такой человек работал.
Аноним 13/04/23 Чтв 15:57:53 2671214 399
>>2669443
дык спроси у старших, может у вас все же есть документация
хотя бы которая сохранилась с этапа первоначальной разработки, типа тз и прочего
а так если ничего нету то конечно же по сути методами реверс-инжиниринга придется работать
Аноним 15/04/23 Суб 18:29:04 2673054 400
>>2566371
Так ты тут за каждый день группируешь, нужно убрать день только период, и ордер никакой разницы не имеет.

SELECT count(*)
FROM printers
WHERE last_working_day > current_date - INTERVAL '10 day'
Аноним 15/04/23 Суб 18:50:17 2673071 401
>>2673054
>>2566371

Я вроде понял что нужен нарастающий итог, погуглил такое решение для постгрес

select last_working_day, sum(cnt) over (order by last_working_day asc rows between unbounded preceding and current row)
from (SELECT last_working_day, count(id) as cnt
FROM printers
WHERE last_working_day > current_date - INTERVAL '10 day'
group by last_working_day) as t1
Аноним 15/04/23 Суб 20:28:37 2673219 402
>>2673071
А зачем там window function OVER?
Аноним 15/04/23 Суб 21:12:25 2673253 403
Короче, вопрос такой. Он скорее про ETL но более подходящего треда я не нашел.

Есть один отчет, который я поддерживаю. Его надо генерировать регулярно и по отдельности для каждого филиала конторы, но логика одна и та же.

Как это сделано сейчас: есть скрипт на питоне. Его регулярно запускает кронтаб. Скрипт идет в директорию configs, где лежит по json-конфигу на каждый филиал. Проходится for циклом по всем конфигам в директории. Для каждого конфига вытаскивает данные с прописанными в конфиге параметрами из БД. Из этих данных формирует отчет, запаковывает в файл, отправляет имейлом на прописанный в конфиге адрес (менеджера филиала). Потом то же самое для следующего конфига - т.е. филиала. И так далее.

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

В принципе, нам циклы не очень нужны- отчеты филиалов не зависимы друг от друга, их можно генерировать и параллельно. Но филиалов - дохуя и они часто меняются, поэтому создавать руками этот DAG с 50+ ветками я охуею. В Airflow можно как-то программно генерировать структуру DAGа на ходу?
Аноним 16/04/23 Вск 11:59:18 2673584 404
>>2673219
Чтобы считало не за весь период сумму, а накопительно по дням, то есть пример в 1 день 3 отпало, во 2й 2, на 3 4, то будет 1 - 3, 2 - 5, 3 - 9.

Сегодня чет тоже не могу найти тот же пример, вот документация https://www.postgresql.org/docs/current/tutorial-window.html . То есть тут без этого можно rows between unbounded preceding and current row .
Аноним 16/04/23 Вск 14:06:45 2673696 405
DBexample.jpg 45Кб, 655x537
655x537
Помогите, пожалуйста, запрос нормально составить.
Есть таблица в которой хранится хрен знает что с ключом ввиде уникального айди. Во второй таблице эти айди могут встречаться от 0 до бесконечности раз и есть столбец с булевым значением. Мне нужно получить айдишники, рядом с которыми во второй таблице нигде не встречается True. Подозреваю что помимо группировки нужен какой нибудь join, но что-то не выходит.
Аноним 16/04/23 Вск 14:09:54 2673702 406
>>2673696
Блять, сделал пример неправильный. id4 не должно быть в итоговой выборке.
Аноним 16/04/23 Вск 14:21:27 2673720 407
>>2673696
Ты не указал с чем работаешь, я обычно делаю временную таблицу куда копирую айди и false как второе поле по умолчанию, а дальше апдейт state = true с джойном второй таблицы по айди и условию state true для второй таблицы, в итоге если хотя бы раз есть тру, должно стать тру, нет останется false

тип такого

update temp_table
set t1.state = 'true'
from temp_table as t1
join table2 as t2 on t2.id = t1.id
and t2.state = 'true'
Аноним 16/04/23 Вск 14:44:01 2673743 408
>>2673584
> Чтобы считало не за весь период сумму, а накопительно по дням,
Но задача стояла "кол-во принтеров за последние 10 дней", т.е общее
Аноним 16/04/23 Вск 14:50:26 2673748 409
>>2673696
А есть relation между Table1 и Table2? FK? Если да, то тут обычный запрос на table2 where state = False
Если нет, то просто INNER JOIN

SELECT id, state
FROM table2 as t2
INNER JOIN table1 as t1 ON t2.id = t1.id AND t2.id = 'False'

Вернет все id, state где state False и ID встречается table1
Но опять же, если есть relation ввиду FK тогда это не нужно
Аноним 16/04/23 Вск 15:10:47 2673765 410
>>2673748
Это не будет работать, если во второй таблице айди втречается и с True и с False, он выберет строку с false и проигнорит true, но этот айдишник мне не нужен.
Аноним 16/04/23 Вск 15:18:08 2673773 411
>>2673720
PostgreSQL, если ты про СУБД. Не понимаю пример запроса, как ты в update запихал from и join, или это части двух разных запросов.
Аноним 16/04/23 Вск 16:16:47 2673823 412
>>2673765
Про дубликаты ты ничего не сказал.
Аноним 16/04/23 Вск 16:21:14 2673829 413
>>2673773
Один запрос, апдейтить или удалять с Джоном не запрещено) но тут пробуй смотри сам, может синтаксис будет другой, но работать должно как нужно тебе
Аноним 16/04/23 Вск 18:15:14 2673962 414
Есть ли причины использовать mysql а не postgres?

Вообще такое чувство будто mysql это просто "постгря но чуть похуже", то есть не плохая база но postgres лучше во всем абсолютно и смысла выбрать mysql в новый проект абсолютно нахуй ноль.

В чем я не прав?
Аноним 16/04/23 Вск 18:51:04 2673984 415
>>2673962
Есть некоторое количество говно-CMS для пыхи, которые работают только на MySQL, там выбора и нет. Вот MySQL и берут во всяких говнопроектах типа магазина, очень низкий порог вхождения, думать не надо, таблиц мало, нагрузок нет, админить мышкой легче, чем в постгресе.
Аноним 16/04/23 Вск 19:32:27 2674030 416
Аноним 16/04/23 Вск 19:44:34 2674046 417
>>2674030
Да там есть некий MySQL Workbench, когда-то давно его тыкал, можно было в пару кликов создавать таблицы и связи между ними, даже какая-то диаграмма со схемой была. В постгресе есть PgAdmin, но он более навороченный и сложный.
Аноним 16/04/23 Вск 19:49:09 2674049 418
>>2673962
Мульти-мастер репликация
Говоришь эти три слова в присутствии постгресодебила и ощущаешь пожар
Аноним 16/04/23 Вск 19:57:52 2674051 419
>>2674049
Монгодаун тут как тут.
Аноним 16/04/23 Вск 22:31:01 2674177 420
>>2674049

А нахуя тебе оно надо? По мне так звучит как что-то опасное. У тебя менеджмент конфликта будет как в git бля
Аноним 16/04/23 Вск 22:33:50 2674180 421
>>2673984

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

Но тогда у тебя даже нет особо выбора. Я щас говорю о ситуации где ты полностью свободен и можешь выбрать че хочешь, есть ли в таких случаях ризон брать что-то кроме постгри?
Аноним 17/04/23 Пнд 01:23:07 2674268 422
>>2674177
Угу, а в MySQL оно работает
Аноним 17/04/23 Пнд 02:47:08 2674288 423
И похуй, что говнопроект на вордпрессе, ВЫ МУЛЬТИ-МАСТЕР-РЕПЛИКАЦИЮ ВИДЕЛИ???
Аноним 17/04/23 Пнд 05:36:43 2674302 424
>>2674288
Горение уже ощущается
Аноним 17/04/23 Пнд 08:16:15 2674373 425
>>2673962

Ну знаешь, можно на это с другой стороны посмотреть. Если тебе нужна функция из постгри, тебе в постгрю. Если сомневаешься бери mysql не ошибешься, в типичном приложении он норм станет без хуйни
Аноним 17/04/23 Пнд 08:17:04 2674374 426
>>2674288
Кста говнопроект в вордпрессе и правда лучше на мусукуле будет, там read лучше, а write там все равно раз в неделю
Аноним 18/04/23 Втр 22:34:55 2675780 427
Есть таблица, которая хранит в себе 2 внешних ключа на 2 разные таблицы.
Мне нужен триггер, чтобы при добавлении записи в одну из таблиц, в исходную таблицу сразу же добавлялась запись с нужными полями. Но выскакивает ошибка, мол внешний ключ ссылается на несуществующую запись.
Аноним 18/04/23 Втр 22:44:33 2675785 428
>>2675780
Всё настолько плохо, что надо прям в триггере это делать, или можно как у нормальных людей сделать вызов нужных инсертов на уровне приложения? Можно хотя бы хранимую процедуру написать с этой логикой?
Аноним 18/04/23 Втр 22:51:25 2675792 429
>>2675785
Я делаю учебное задание и мне просто так удобнее было бы, чтобы лишний код не писать. Так что, можно как-то такой триггер сделать?
Аноним 18/04/23 Втр 22:57:35 2675794 430
>>2675780
>>2675785
Забыл дописать, что дело база постгрес
Аноним 22/04/23 Суб 09:55:39 2678415 431
>>2530219 (OP)
Парни, как быть с БД в микросервисной архитектуре?
Есть 2 сервиса которые по факту связаны с одной БД. Первый - это бек админки. Второй - это data import, которые периодически обновляет данные в этой БД

Я часто слыхал что когда одна БД привязана более чем к одному микросервису это плохо и вообще пиздец, вот тут статья с Хабра еще на глаза попадалась: https://habr.com/ru/articles/672086/
Но в комментах автора кстати попустили и сказали то "все нармална с интеграционной БД! ты прост лох и не умеешь ее готовить!". Что по этой теме посмотреть и кто прав? Я раньше только с монолитами работал
Аноним 22/04/23 Суб 12:12:00 2678482 432
>>2678415
БД - это обычно source of truth, база это база, что тут говорить. А уж как вокруг нее макаки наговнякали скрипты и как эти скрипты называются на этой неделе - монолитом или микросервисами - глубоко похуй
Аноним 22/04/23 Суб 14:49:20 2678613 433
>>2678482
Разница есть.
Когда пишем в одну базу могут быть проблемы совместимости когда загоняем туда изменения. Но когда баз несколько то могут быть проблемы консистентности.
Аноним 22/04/23 Суб 15:00:08 2678625 434
>>2678613
Это проблемы исключительно макако скриптов, которые в базу смотрят, а не самой базы
Аноним 22/04/23 Суб 15:03:59 2678628 435
>>2678625
А ты позволь узнать кто? Что же за Высшее Существо тут в треде объявилось?
Аноним 22/04/23 Суб 15:08:34 2678633 436
1551140110504.jpg 144Кб, 640x660
640x660
Аноним 22/04/23 Суб 19:46:36 2678811 437
image.png 451Кб, 1280x720
1280x720
Как закатиться в BIG data?
Аноним 24/04/23 Пнд 01:36:24 2679682 438
>>2678811
раньше все просто было для новичка: просто понимаешь разницу oltp и olap, как организовать хранилище данных и перекидывать туда данные, потом там побственно кубы и аналитические функции, тупо еще расширение sql..
опять же в вузике это давали отдельными лекциями на курсах по теории баз данных..
а сейчас нахуевертили еще всякого..
Аноним 24/04/23 Пнд 05:36:56 2679699 439
>>2673962
Есть ли причины использовать postgresql, а не божественный edgedb?

Вообще такое чувство будто posgresql это просто "edgedb но чуть похуже", то есть не плохая база но edgedb лучше во всём абсолютно и смысла выбрать postgresql в новый проект абсолютно нахуй ноль.

В чем я не прав?
Аноним 24/04/23 Пнд 07:05:12 2679707 440
>>2679699
Маркетолог edgedb плез
Аноним 24/04/23 Пнд 07:09:02 2679709 441
>>2679707
она бесплатная долбоёб
Аноним 24/04/23 Пнд 07:14:30 2679711 442
>>2679709
Этого не достаточно, чтоб я купился, плохо работаешь, придумай лучше причину
Аноним 24/04/23 Пнд 09:55:05 2679755 443
Какая БД лучше всего справляется с множественными операциями UPDATE? И есть ли вообще такая?
Постгря например сначала удаляет строку а потом делает INSERT с новыми данными даже если поменял лишь 1 колонку. Кто-то говорил что Кассандра вроде как могет, но бля, это колоночная база, какой там нахрен частый апдейт?
Аноним 24/04/23 Пнд 13:12:01 2679880 444
image.png 29Кб, 681x306
681x306
>>2679699
Бля, я понимаю сам движок вроде PostgeSQL (?), но пиздец, python для RDBM
Аноним 24/04/23 Пнд 14:07:39 2679930 445
>>2679880
Это не рсубд, это какой-то недоgraphql.
Аноним 24/04/23 Пнд 14:16:57 2679939 446
>>2679930
Там реляционная модель, просто упрощена в плане навигации.
Less obtuse. Но я думаю упоминание "written in python" быстро отпугивает всех интересующихся at scale.
Нашел лишь отзывы мелких проектов:
https://divan.dev/posts/edgedb/
Там хвалят, говорят реально можно мышкой делать то, что бородатые старики SQL 40 лет учили.
Аноним 24/04/23 Пнд 14:32:29 2679958 447
Аноним 24/04/23 Пнд 14:37:50 2679967 448
>>2679939
> divan.dev
> https://divan.dev/posts/war/
> This shit is deeply rooted in the russian language too. It’s subconscious. Their tsars had been killing and raping them for centuries, and it became a part of their cultural DNA, which they learned to love. They’ve never had democratic grassroots society mechanisms in their whole history. Learned helplessness. “We’re apolitical”. “It’s our government is bad; we are different”. “We’re for peace”.

Ого, у нас тут прямо база-базон.
Аноним 24/04/23 Пнд 14:48:24 2679983 449
>>2679967
Ну, это понаехавший и пидорахии в буржустан, я так понял
Аноним 24/04/23 Пнд 17:09:29 2680106 450
>>2679699
Что значит "во всем"?
Как там с поддержкой? Как с коммьюнити? Опен сорс постгрю пилят тысячи человек по всему миру и регулярно вносят апдейты. Тут что?
Аноним 24/04/23 Пнд 17:26:15 2680130 451
>>2679699
>>2679939
Короче, лол, она под Винду только через WSL ставится, лол. Я хотел было проверить да ну нахуй с там счастьем, даже заморачиваться не буду.
Лет через 30 когда будет нативный, тогда зовите (из гроба)
Аноним 25/04/23 Втр 23:49:19 2681362 452
>>2530219 (OP)
Как обойти дерево (таблица id-parent_id) без cte? На чистом sql. Это вообще возможно?
Аноним 26/04/23 Срд 00:03:57 2681373 453
>>2681362
> без cte
То есть без рекурсивных запросов? Нет, по-другому никак. Разве что максимальная высота дерева заранее известна, тогда просто портянкой джойнов.
Аноним 26/04/23 Срд 09:50:59 2681564 454
Есть ли смысл вкатываться в Data science, если есть техническая вышка ПГС? Из матана помню только дифференциальные уравнения второго порядка и комплексные числа.
Аноним 26/04/23 Срд 10:17:13 2681574 455
>>2681564
Кого ебёт что ты помнишь. Чтобы выучить дата сцаенс, нужна только самодисциплина и серьёзный настрой. Это как выучить китайский. Его можно хоть за 3 месяца задрочить, если ты железно садишься и каждый день по 8 часов учишь. А если ты несерьёзный человек, обучаешься 15 минут в месяц, любишь сдаваться при любой трудности, то и результаты будут такими же несерьёзными.
Аноним 26/04/23 Срд 10:38:31 2681591 456
>>2681574
В вакансия везде требование экономическое высшее, вопрос больше про вышку и шансы найма с ней.
Аноним 26/04/23 Срд 11:03:52 2681613 457
>>2681564
Вышку похуй.

Для дата саянса лучше всего через дата-аналитику вкатываться. Или в ШАД идти, лол
Аноним 26/04/23 Срд 11:12:20 2681620 458
>>2681613
Я через хекслет буду вкатываться.
Аноним 26/04/23 Срд 11:30:22 2681628 459
image.png 7Кб, 270x127
270x127
>>2681620
А там есть курсы дата саянс?
Аноним 26/04/23 Срд 11:43:35 2681637 460
>>2681564
При чём тут базы данных? В треде про машоб спрашивай.
Аноним 26/04/23 Срд 12:18:43 2681656 461
>>2681628
Да, недавно выпустили.
Аноним 26/04/23 Срд 13:40:28 2681760 462
>>2681373
>То есть без рекурсивных запросов?

Да.
Жаль, думал, есть какой-нибудь хак.
Аноним 26/04/23 Срд 20:48:18 2682115 463
data-science.jpg 159Кб, 873x409
873x409
>>2681591
>В вакансия везде требование экономическое высшее
Требовать они будут на параше. А это просто "пожелание" и не более того. ЖЕЛАТЕЛЬНО экономическое высшее. Это они описывают ИДЕАЛЬНОГО кандидата. Но идеальных кандидатов почти нет, никто не подходит под описание на 100%. Даже если ты хотя бы на 60% подходишь, уже можно подавать заявку. Если оно есть - ХОРОШО, но если его нет... ну нет так нет, проблема пиздец.
Аноним 27/04/23 Чтв 11:43:36 2682463 464
>>2682115
Пиздец требования, лол. Да за такое меньше 50$k вообще нахуй нужно.
Аноним 27/04/23 Чтв 12:23:45 2682510 465
Здоров, бантиты. А вообще насколько глубоко нужно знать базы данных если ты бэкенд петушня а не базист?

Вот летом прошлого года устроился на работу, бэк мидол.

На собесе спрашивали не только джойны хевинги да индексы, но и че такое innodb_fsync_threshold, чем отличается синхронная репликация от астнхронной и тд.

А на деле я пишу код который другой отдел ставит как зависимость, и с данными я не работаю напрямую. А на собесе валили пиздец.

Вообще нужно ли лезть в эти дебри или забить хуй и дрючить паттерны?
Аноним 27/04/23 Чтв 14:31:16 2682620 466
>>2682510
Петухан задавал тебе дебильные вопросы намеренно чтобы унизить тебя (и чтобы ты почувствовал себя тупым и умерил аппетиты) либо чтобы самоутвердиться
Аноним 27/04/23 Чтв 14:53:50 2682638 467
>>2681620
Чёт пробежался по первому курсу, а там задачи из экселя, решил все на обеде + перекуре. А дальше не дают теорию, мол группа ещё не дошла. Открыл весь курс, а там 4 курса по SQL и один ПУСТОЙ по Superset. Дальше идёт теория про свечи и диаграммы. И на последок общие курсы по Питхону. После них: по визуализации данных, anaconda и jupyter notebook - все пустые.

Меня заскамили?
Аноним 08/05/23 Пнд 19:16:28 2692244 468
>>2530219 (OP)
Сверхразумы, хелп с апдейтом данных
У нас есть типичный bulk update одновременно некоторого числа строчек в таблице от Постгрес. На фронте есть набор из сотни строчек, юзер может поменять в одной колонке "комментарий" и потом, нажав на "сохранить изменения", данные для обновы отправляются на бек. Тут есть проблема в том, что если мы пошлем все 100 строк, то разовое обновление такого количества, большая часть из которых в общем-то остались прежними - хреновая затея. Варианта как вижу тут 2:

1. Возложить эту проблему на фронт и заставить его проверят какие именно строки были отредачены, только их на апдейт и слать
2. Фронт посылается массив со всеми 100 строками а бек каким-то образом (каким?) должен понять что обновлять надо только строго определенные

Шо делать в такой ситуации?
Аноним 08/05/23 Пнд 19:31:03 2692268 469
>>2692244
Ну или на клиенте сверяешь инпуты с изначальным данными при сабмите или всё на бек, там селектишь опять и сверяешь опять же. Потом в транзакцию.
В целом особой разницы нет, наверное.
Аноним 08/05/23 Пнд 20:05:30 2692302 470
>>2692268
А как сверить-то? Я например юзаю питон и драйвер алхимии поверх asyncpg, хоть я и пишу сырой скуль но как мне сверить-то данные без цикла внутри самого питона? Простой запрос внутр искуля на апдейт из селекта был бы такой:

UPDATE shops
SET shops.comment = sub.comment
FROM (
SELECT * FROm some_other_table
) AS sub
WHERE sub.id = shops.id AND sub.comment != shops.comment

Но у меня-то данные с фронта приходят
Аноним 08/05/23 Пнд 20:16:53 2692313 471
>>2692302
1. Создаёшь временную таблицу (в твоём случае достаточно чтобы в ней было два столбца: id, comment) через CREATE TEMPORARY TABLE tmp_hueta ...; 2. Вставляешь данные с фронта в эту временную таблицу; 3. Обновляешь основную, использую данные из временной, типа
UPDATE hueta
SET comment = tmp.comment
FROM tmp_hueta tmp
WHERE hueta.id = tmp.id AND hueta.comment <> tmp.comment;
4. Дропаешь временную таблицу (хотя она сама дропнется после закрытия транзакции)
Аноним 08/05/23 Пнд 20:26:23 2692326 472
>>2692302
>>2692313
Кстати, если строк для обновления не сильно много, то можно даже временную таблицу не использовать а просто все значения в values передать

UPDATE hueta
SET comment = tmp.comment
FROM (VALUES (11, 'comment 1'), (12, 'comment 2')) AS tmp(id, comment)
WHERE hueta.id = tmp.id AND hueta.comment <> tmp.comment
Аноним 08/05/23 Пнд 20:55:01 2692353 473
>>2692313
Временные таблицы же создаются в другой схеме? Но именно вот у них будут одинаковые, там конфликтов не будет если несколько разных транзакций начнут их создавать-дропать?
Аноним 08/05/23 Пнд 21:19:43 2692379 474
noindex.jpg 18Кб, 552x162
552x162
Здравствуйте. Объясните, пожалуйста, новичку про план запроса ms sql server.
--
--Делаю две простые таблицы:
--Ключ и поле
create table Parent (Id int not null identity primary key, Value int)
--Ключ, внешний ключ и поле
create table Child ( Id int not null identity primary key, IdParent int foreign key references Parent(Id), Value int)
--Добавляю индекс
create index my_Child on Child(Value)
--Заполняю таблицу данными (не отображено)
--Выполняю запрос:
select * from Parent as p
join Child as c on p.Id = c.IdParent
where c.Value = 1
--
Смотрю план запроса, получаю пикрил и ничего не понимаю. Почему сервер так делает? Разве он не должен по дочерней выполнять "Clustered Index Seek", если там некластерный индекс? Спасибо.
Аноним 08/05/23 Пнд 21:28:57 2692391 475
>>2692379
Блин, ступил. Ну план запроса должен же меняться, когда я добавляю индекс?
Аноним 08/05/23 Пнд 21:33:55 2692398 476
>>2692391
Т.е., он разве не должен выполнять Index Seek?
Аноним 08/05/23 Пнд 21:51:51 2692409 477
Что за аниме из шапки?
Аноним # OP 08/05/23 Пнд 22:04:54 2692421 478
>>2692409
Гугл говорит, что To Heart 2
Хуй знает, взял первую попавшуюся пикчу.
Аноним 11/05/23 Чтв 14:06:26 2695012 479
Почтенные программисты! Неужели никто не может ответить по >>2692379 >>2692398 ?
Аноним 11/05/23 Чтв 20:31:17 2695373 480
>>2530219 (OP)
>Cсылки для аутистов:
Почему так?
Аноним 11/05/23 Чтв 23:39:32 2695554 481
Аноним 12/05/23 Птн 20:55:03 2696582 482
image.png 17Кб, 1357x69
1357x69
Всем привет. Есть развернутый постгрес на FreeBSD и на нем трубуется установить метод аутентификации ident. При этом там не поднтя iden server и вообще рут прав нет. Сыпит вот такую ошибку. Как это можно обойти ?
Аноним 13/05/23 Суб 01:30:03 2696829 483
>>2696582
> The ident authentication method works by obtaining the client's operating system user name from an ident server
"Хочу получать пользователя у ident сервера, но запускать его не хочу?" Таблетки. Следующий!
Аноним 13/05/23 Суб 07:15:43 2696880 484
>>2660945
Оптимальный кейс для NoSQL - когда есть небольшое количество уже известных запросов. Например, блог. Там уже примерно понятны сущности - статья, автор, комментарий, и т.д. И какие запросы будут, а-ля "получить все статьи". Плюсы NoSQL - он может масштабироваться хоть до луны, хоть там 2 миллиона статей будет, он всё равно отработает супер быстро.

Оптимальный кейс для SQL - когда есть большое количество разнообразных сущностей и запросов. Например, CRM. И там надо хитро отфильтровать контрагентов по доходам за определенное время.

Короче,
Если тебе нужна гибкость запросов - бери SQL
Если тебе нужна масштабируемость и скорость - бери NoSQL
Аноним 13/05/23 Суб 07:21:37 2696883 485
>>2696880
Заученные шаблоны и пересказы рекламных буклетов разных продуктов, не имеющие ничего общего с реальностью.
Аноним 13/05/23 Суб 07:22:33 2696884 486
Аноним 13/05/23 Суб 07:31:38 2696886 487
>>2696884
NoSQL - это модный 15 лет назад баззворд, под которым успешно раскрутились несколько продуктов. Суть в том, что в отличие от старперских RDBMS, они показали, что их продукт много проще, дешевле в обслуживании, масштабировании и этого достаточно, чтоб быстро-быстро и дешево-дешево выпустить свой, как ты говоришь, блог. Да, нету гибкого языка запросов, но он понадобится послезавтра, а блог надо выпускать и захватывать рынок сейчас.
За это время и NoSQL-решения давно обросли разными языками запросов, и RDMS научились масштабироваться и все остальное, чего там не хватало, в том числе мимикрировать под "NoSQL". В общем, разница между "SQL" и "NoSQL"-решениями - это лишь разница в рекламных буклетах.
Аноним 13/05/23 Суб 08:24:43 2696928 488
>>2696886
Фууу блять это уже извращенство, просто не ТРУ. Я не знаю кто этой хуйнёй страдает. Если ты хотел с SQL работать, так бери SQL. Не совсем понимаю смысла прикручивать еретический язык запросов к NoSQL. Это просто богохульство. Там весь смысл был в том, чтобы структурировать данные под запрос. А в SQL всё наоборот. Испокон веков NoSQL-базы используются чтобы перегонять терабайты данных туда-сюда, их оптимально ставить туда где куча простых запросов. RDBMS начали масштабироваться относительно недавно, только в последние годы появились все эти PlanetScale, Aurora и прочие. А NoSQL в бессерверном варианте уже миллион лет работают. Философия всё равно другая, как бы кто не мимикрировал.
Аноним 13/05/23 Суб 08:28:37 2696932 489
>>2696928
С религиозными тараканами в голове - тебе не сюда, а в церковь или к врачу. Если же ты снимешь шоры, и посмотришь из чего состоит и всегда(!) состояли RDMS - то будешь согласен со всем вышесказанным.
Аноним 13/05/23 Суб 11:38:25 2697030 490
>>2696829
Я не не хочу его запускать. Я не могу его запустить рут прав же нету ебана. А метод ident оставить надо не мне лично , такое задание.
Аноним 13/05/23 Суб 15:10:06 2697214 491
Аноним 14/05/23 Вск 09:29:48 2697913 492
Анон, я опытный, но как-то с базами данных мало имел дел. Короче, есть сервер, к нему подключена камера (ирл все по-другому, здесь аналогия). Программа делает обработку - детектит объекты, рисует рамку, id.

Я хочу сливать в БД различную информацию (id, время, параметры) + будет всякая инфа по foreign ключам (хз как корректно называется) + хочу сливать изображение (не весь кадр, а обрезанную область).

Какую лучше БД взять? Слив думал делать на ту же машину, где происходит обработка (т.е. типа MySql использовать). На машине есть ссд. Всякие костыли типа csv не хочу, бесит и хуево масштабируется.

Возможно, целевая система будет AstraLinux. Там сертифицирован Postgresql и MariaDb. Пострес на локалхосте эффективен или хуйня?
Аноним 14/05/23 Вск 14:01:55 2698133 493
>>2697913
Какой интересный пациент. Думаешь эффективность зависит от айпи-адреса?
Аноним 14/05/23 Вск 15:29:25 2698246 494
>>2697913
>Какую лучше БД взять?
Любая IoT/Time series-база данных. Apache IoTDB, InfluxDB, CrateDB, Riak TS и проч. По сути, то что ты хранишь - это временной ряд. Главный минус и PostgreSQL и MariaDB они не очень хорошо работают с временными рядами (ебать у них даже название "реляционная ДБ"), если в базу часто писать, они будет быстро разрастаться и подтормаживать. Придётся чистить от старого говна. Плюс, там не получится писать запросы в стиле "получить усредненные данные с камер 1, 2 за последний месяц, с интервалом один час".

Попробуй ебать ради эксперимента запиши в марию дб, запиши свои данные (id, время, и проч) и попробуй сделать запрос "верни 10 усредненных результатов за неделю с интервалом 10 минут". И увидишь какая хуйня получится. Можно сделать на постгре, но там будет костыль на костыле. Кое-как через жопу работать.
Аноним 14/05/23 Вск 22:43:02 2698703 495
>>2698133
Думаю, что для локалхоста у постгреса есть подключение через юникс домаин сокетс

>>2698246
Спасибо за инфу, читнул немного про тайм-сериес, буду знать.

Слив инфы я хотел сделать как помойку, чтобы потом все это говно медленно разгребать. Даже думал сессии сделать. Мне очень хочется использовать реляционную бд , т.к. задача хорошо бьётся на несколько таблиц
Аноним 16/05/23 Втр 12:06:41 2700481 496
Вкатываюсь в sql, на работе появилась задачка разобраться и немного отредактировать sql запрос.
А он на 200+ строк, и текстовый редактор в ssms просто никакой, едва ли лучше блокнота, никак не могу нормально разобраться.
В том же notepad++ табуляция лучше работает, да и скобки подсвечиваются, есть ли какие-нибудь другие редакторы, чтобы все красиво было?
А то я привык, что в pycharm с питоном ахуенно работать, а тут такая залупа от майков...
Аноним 16/05/23 Втр 12:53:28 2700544 497
>>2700481
Как связан редактор и база данных, сверхразум? Редактируй в любом редакторе
Аноним 16/05/23 Втр 13:48:45 2700613 498
>>2700544
Ты ещё раз прочитай, я явно указал вопрос:
> В том же notepad++ табуляция лучше работает, да и скобки подсвечиваются, есть ли какие-нибудь другие редакторы, чтобы все красиво было?
Аноним 16/05/23 Втр 13:52:34 2700619 499
>>2700613
Ты еще раз прочитай свой же вопрос, в нем же ты дал ответ и привёл пример другого редактора
Аноним 16/05/23 Втр 14:50:58 2700700 500
>>2700619
То есть для sql нет редактора лучше notepad++?
Аноним 16/05/23 Втр 15:23:26 2700740 501
>>2700700
Пиздец ты сверхразум. Еще раз прочитай свое сообщение. Там еще один редактор упоминается
Аноним 16/05/23 Втр 16:02:05 2700783 502
>>2700740
Точно, ещё ведь блокнот есть. Спасибо, друг.
Аноним 16/05/23 Втр 17:25:23 2700914 503
>>2700783
Это правда, не говнищем от жидбрейнс же пользоваться
Аноним 16/05/23 Втр 19:01:47 2701090 504
>>2700481
>>А то я привык, что в pycharm с питоном ахуенно работать, а тут такая залупа от майков...
Там разве datagrip в комплекте не идет?
# OP 17/05/23 Срд 01:42:11 2701508 505
.jpg 71Кб, 464x450
464x450
Настройки X
Ответить в тред X
15000
Добавить файл/ctrl-v
Стикеры X
Избранное / Топ тредов