PostgreSQL Antipatterns: ходим по JSON-граблям.
Недавно попался на глаза примерно такой кусок запроса, и тут прекрасно примерно все:
• множество чтений из CTE (хоть и единственной записи, но все же);
• извлечение по каждому ключу текста с раскастовкой в jsonb;
• извлечение каждого отдельного json-ключа в каждое отдельное одноименное поле;
• "ручное" преобразование текстового представления массива в json в текстовое представление PostgreSQL.
А как - правильно?
Читать далее https://habr.com/ru/companies/tensor/articles/771406
Недавно попался на глаза примерно такой кусок запроса, и тут прекрасно примерно все:
• множество чтений из CTE (хоть и единственной записи, но все же);
• извлечение по каждому ключу текста с раскастовкой в jsonb;
• извлечение каждого отдельного json-ключа в каждое отдельное одноименное поле;
• "ручное" преобразование текстового представления массива в json в текстовое представление PostgreSQL.
А как - правильно?
Читать далее https://habr.com/ru/companies/tensor/articles/771406
Хабр
PostgreSQL Antipatterns: ходим по JSON-граблям
Недавно попался на глаза примерно следующий кусок запроса: ... , (((TABLE jsd) -> src.id::text)::jsonb ->> 'Номер')::text "Номер" , (((TABLE jsd) -> src.id::text)::jsonb ->>...
Как мы масштабировали PostgreSQL до 350 ТБ и более (с 10 млрд новых записей в день)
https://www.timescale.com/blog/how-we-scaled-postgresql-to-350-tb-with-10b-new-records-day
https://www.timescale.com/blog/how-we-scaled-postgresql-to-350-tb-with-10b-new-records-day
Timescale Blog
How We Scaled PostgreSQL to 350 TB+ (With 10B New Records/Day)
Read how we used Timescale to scale a 350 TB+ PostgreSQL database to build Insights, our new database observability tool.
Почему сложно горизонтально масштабировать базы данных SQL?
Понимание проблем горизонтального масштабирования баз данных SQL для проектирования систем.
https://www.designgurus.io/blog/Horizontally-Scale-SQL-Databases
Понимание проблем горизонтального масштабирования баз данных SQL для проектирования систем.
https://www.designgurus.io/blog/Horizontally-Scale-SQL-Databases
Design Gurus: One-Stop Portal For Tech Interviews.
Why Is It Hard to Horizontally Scale SQL Databases?
Understanding the Challenges of Horizontally Scaling SQL Databases for System Design.
Миграция базы данных: операция разработчиков на открытом сердце
Задача заключалась в переходе от реляционной базы данных PostgreSQL AWS к нашему локальному автономному решению . Мы собрали целевую команду, состоящую из разработчика, DevOps и двух администраторов баз данных. https://shiftmag.dev/database-migration-developers-open-heart-surgery-1926
Задача заключалась в переходе от реляционной базы данных PostgreSQL AWS к нашему локальному автономному решению . Мы собрали целевую команду, состоящую из разработчика, DevOps и двух администраторов баз данных. https://shiftmag.dev/database-migration-developers-open-heart-surgery-1926
ShiftMag
Database migration: Developers' open-heart surgery
Live database migrations are developers' heart surgeries – and ours sure felt like it.
Bolt SQL — быстрый и красивый клиент базы данных
Этот новый клиент ориентирован на скорость и большую интеграцию с облаком, поэтому вам будет проще обмениваться настройками между компьютерами или со своей командой. https://laravel-news.com/bolt-sql-fast-and-beautiful-database-client
Этот новый клиент ориентирован на скорость и большую интеграцию с облаком, поэтому вам будет проще обмениваться настройками между компьютерами или со своей командой. https://laravel-news.com/bolt-sql-fast-and-beautiful-database-client
Laravel News
Bolt SQL - Fast and beautiful database client - Laravel News
Bolt SQL is a brand-new database client from the makers of TablePlus.
Почему вам стоит отказаться от использования timestamp в PostgreSQL.
Не секрет, что работа с часовыми поясами — боль, и многие разработчики объяснимо стараются ее избегать. Тем более что в каждом языке программирования / СУБД работа с часовыми поясами реализована по-разному.
Среди тех, кто работает с PostgreSQL, есть очень распространенное заблуждение про типы данных timestamp (который также именуется timestamp without time zone) и timestamptz (или timestamp with time zone). Вкратце его можно сформулировать так:
Мне не нужен тип timestamp with time zone, т.к. у меня все находится в одном часовом поясе — и сервер, и клиенты.
В статье я постараюсь объяснить, почему даже в таком довольно простом сценарии можно запросто напороться на проблемы. А в более сложных (которые на самом деле чаще встречаются на практике, чем может показаться) баги при использовании timestamp практически гарантированы.
Читать далее https://habr.com/ru/articles/772954
Не секрет, что работа с часовыми поясами — боль, и многие разработчики объяснимо стараются ее избегать. Тем более что в каждом языке программирования / СУБД работа с часовыми поясами реализована по-разному.
Среди тех, кто работает с PostgreSQL, есть очень распространенное заблуждение про типы данных timestamp (который также именуется timestamp without time zone) и timestamptz (или timestamp with time zone). Вкратце его можно сформулировать так:
Мне не нужен тип timestamp with time zone, т.к. у меня все находится в одном часовом поясе — и сервер, и клиенты.
В статье я постараюсь объяснить, почему даже в таком довольно простом сценарии можно запросто напороться на проблемы. А в более сложных (которые на самом деле чаще встречаются на практике, чем может показаться) баги при использовании timestamp практически гарантированы.
Читать далее https://habr.com/ru/articles/772954
Хабр
Почему вам стоит отказаться от использования timestamp в PostgreSQL
Не секрет, что работа с часовыми поясами — боль, и многие разработчики объяснимо стараются ее избегать. Тем более что в каждом языке программирования / СУБД работа с часовыми поясами реализована...
В этой статье мы увидим, как можно реализовать решение по секционированию таблиц при использовании Spring и Hibernate.
Цель секционирования таблицы — разделить большую таблицу на несколько меньших таблиц секционирования, чтобы связанные таблицы и записи индекса могли поместиться в буферный пул в памяти, что позволяет более эффективно выполнять поиск или сканирование. https://vladmihalcea.com/table-partitioning-spring-hibernate
Цель секционирования таблицы — разделить большую таблицу на несколько меньших таблиц секционирования, чтобы связанные таблицы и записи индекса могли поместиться в буферный пул в памяти, что позволяет более эффективно выполнять поиск или сканирование. https://vladmihalcea.com/table-partitioning-spring-hibernate
Vlad Mihalcea
Table partitioning with Spring and Hibernate
Learn what is the best way to implement a relational database table partitioning solution when using Spring and Hibernate.
SQLCoder теперь лучше пишет Postgres SQL, чем GPT-4. Если оставить в стороне тесты, я поражен тем, насколько хорошо он работает даже без тонкой настройки.
Github: https://github.com/defog-ai/sqlcoder
Interactive Demo: https://defog.ai/sqlcoder-demo/
Huggingface: https://huggingface.co/defog/sqlcoder-34b-alpha
Github: https://github.com/defog-ai/sqlcoder
Interactive Demo: https://defog.ai/sqlcoder-demo/
Huggingface: https://huggingface.co/defog/sqlcoder-34b-alpha
GitHub
GitHub - defog-ai/sqlcoder: SoTA LLM for converting natural language questions to SQL queries
SoTA LLM for converting natural language questions to SQL queries - defog-ai/sqlcoder
Как подключить API-интерфейс OpenAI Assistant к вашей базе данных SQL
https://medium.com/dataherald/how-to-connect-openais-assistant-api-to-your-sql-database-49b81c76811c
https://medium.com/dataherald/how-to-connect-openais-assistant-api-to-your-sql-database-49b81c76811c
Medium
How to connect OpenAI’s Assistant API to your SQL database
A step-by-step guide
Учебное пособие по SQLite
Это руководство даст вам быстрый старт с SQLite и поможет вам освоить программирование на SQLite.
https://www.tutorialspoint.com/sqlite/
Это руководство даст вам быстрый старт с SQLite и поможет вам освоить программирование на SQLite.
https://www.tutorialspoint.com/sqlite/
Tutorialspoint
SQLite Tutorial
SQLite Tutorial - Learn SQLite from scratch with this comprehensive tutorial covering installation, basic commands, and advanced features.
Postgres: первый опыт
Ваш первый путеводитель по галактике Postgres
https://postgrespro.com/community/books/introbook
Ваш первый путеводитель по галактике Postgres
https://postgrespro.com/community/books/introbook
Postgrespro
Postgres: The First Experience
Postgres Professional is a PostgreSQL company delivering Postgres Pro DBMS and all kinds of PostgreSQL professional services worldwide
Углубленное введение в диапазон дат SQL
В этом посте мы отправим вас в путешествие по диапазону дат SQL. Вы поймете, что означает «диапазон дат SQL», какую ценность он приносит для запросов к базе данных и как его использовать в своих интересах. https://www.influxdata.com/blog/sql-date-range-introduction/
В этом посте мы отправим вас в путешествие по диапазону дат SQL. Вы поймете, что означает «диапазон дат SQL», какую ценность он приносит для запросов к базе данных и как его использовать в своих интересах. https://www.influxdata.com/blog/sql-date-range-introduction/
InfluxData
An In-Depth Introduction to SQL Date Range
Learn about how to query date ranges using SQL
Как ускорить выполнение SQL-запросов и написать чистый SQL-код?
В этой статье мы собираемся изучить, как оптимизировать SQL-запросы и повысить производительность запросов, используя советы и методы оптимизации SQL-запросов и многие другие.
Прежде чем перейти к основной теме оптимизации SQL-запросов, давайте сначала разберемся с фактической обработкой запроса:
https://medium.com/@mohamad.ashour203/how-to-speed-your-sql-queries-and-write-clean-sql-code-f8636d7eb245
В этой статье мы собираемся изучить, как оптимизировать SQL-запросы и повысить производительность запросов, используя советы и методы оптимизации SQL-запросов и многие другие.
Прежде чем перейти к основной теме оптимизации SQL-запросов, давайте сначала разберемся с фактической обработкой запроса:
https://medium.com/@mohamad.ashour203/how-to-speed-your-sql-queries-and-write-clean-sql-code-f8636d7eb245
Medium
How to speed your SQL queries and write clean SQL code?
In the article, we are going to examine how to optimize SQL queries and improve query performance by using SQL query optimization tips and…
[Перевод] Как был создан потоковый SQL-движок
Возможно, вы какраз их тех, кто, просыпаясь каждое утро, задаёт себе три самых вечных жизненных вопроса: 1) какмне сделать потоковый SQL‑движок? 2) Чтоэто такое— потоковый SQL‑движок? 3) Способенли Господь наш сбрасывать те таблицы, коими владеет иной пользователь?
Я тоже ловил себя натом, чтозадаю себе эти вопросы, и порой они неоставляют меня даже восне. Мне снятся различные SQL‑операторы, которые тычут вменя пальцем, насмехаются над моей некомпетентностью, ая умоляю их, чтобы они ответили наэти вопросы.
Так вот, где‑то год назад я (довольно смело, если «смелость»— это вообще променя) снарядился какследует и пустился вдолгий и тернистый путь, искать ответы наэти вопросы. Я шёл отмонаха кпресвитеру, аоттого— кжрецу макаронного монстра, и только вужасе осознавал, сколь жалкие вопросы их занимают— например, каков смысл жизни, и какобрести мир ссамим собой. Но, вконце концов, потерявшись вглубочайших расщелинах моего разума, я набрёл начасовенку, над входом которой значилось: «Epsio Labs». Тут я преисполнился откровения и вошёл вдвери этого храма.
Друзья, сегодня я поделюсь свами теми таинствами, которые познал там (за исключением тех, чтоподпадают подмногочисленные NDA).
https://habr.com/ru/articles/775156/
Возможно, вы какраз их тех, кто, просыпаясь каждое утро, задаёт себе три самых вечных жизненных вопроса: 1) какмне сделать потоковый SQL‑движок? 2) Чтоэто такое— потоковый SQL‑движок? 3) Способенли Господь наш сбрасывать те таблицы, коими владеет иной пользователь?
Я тоже ловил себя натом, чтозадаю себе эти вопросы, и порой они неоставляют меня даже восне. Мне снятся различные SQL‑операторы, которые тычут вменя пальцем, насмехаются над моей некомпетентностью, ая умоляю их, чтобы они ответили наэти вопросы.
Так вот, где‑то год назад я (довольно смело, если «смелость»— это вообще променя) снарядился какследует и пустился вдолгий и тернистый путь, искать ответы наэти вопросы. Я шёл отмонаха кпресвитеру, аоттого— кжрецу макаронного монстра, и только вужасе осознавал, сколь жалкие вопросы их занимают— например, каков смысл жизни, и какобрести мир ссамим собой. Но, вконце концов, потерявшись вглубочайших расщелинах моего разума, я набрёл начасовенку, над входом которой значилось: «Epsio Labs». Тут я преисполнился откровения и вошёл вдвери этого храма.
Друзья, сегодня я поделюсь свами теми таинствами, которые познал там (за исключением тех, чтоподпадают подмногочисленные NDA).
https://habr.com/ru/articles/775156/
Хабр
Как был создан потоковый SQL-движок
Возможно, вы как раз их тех, кто, просыпаясь каждое утро, задаёт себе три самых вечных жизненных вопроса: 1) как мне сделать потоковый SQL‑движок? 2) Что это такое — потоковый...
Zabbix, PostgreSQL и pg_stat_statements.
Я хочу поделиться своим опытом использования Zabbix для анализа проблем с производительностью PostgreSQL, используя расширение pg_stat_statements.
Читать далее https://habr.com/ru/companies/domclick/articles/771712
Я хочу поделиться своим опытом использования Zabbix для анализа проблем с производительностью PostgreSQL, используя расширение pg_stat_statements.
Читать далее https://habr.com/ru/companies/domclick/articles/771712
Хабр
Zabbix, PostgreSQL и pg_stat_statements
Я хочу поделиться своим опытом использования Zabbix для анализа проблем с производительностью PostgreSQL, используя расширение pg_stat_statements. pg_stat_statements Что такое Zabbix, объяснять, я...
Что происходит при сбое баз данных? (3 минуты чтения) Базы данных хранят таблицы и индексы в файлах, записывая их на страницы данных в памяти, которые затем записываются на диск. Проблема возникает в случае потери питания или сбоя во время записи, что приводит к повреждению файлов. Для решения этой задачи в базах данных используется журнал опережающей записи (WAL). В этой статье описывается, как WAL используется в качестве источника истины, помогающего базе данных восстановить работоспособность после сбоя. подробнее→ https://medium.com/@hnasr/what-happens-when-databases-crash-74540fd97ea9
Medium
What happens when databases crash?
Databases have tables and indexes stored in files. As you create rows, the database system writes to data pages in memory which is then written to data files on disk. There is a problem though, what…
Порядок выполнения SQL
Как SQL-запрос выполняется внутри
https://code.likeagirl.io/sqls-order-of-execution-f64d639ce4ec
Как SQL-запрос выполняется внутри
https://code.likeagirl.io/sqls-order-of-execution-f64d639ce4ec
Medium
SQL’s Order of Execution
How a SQL query is executed internally
Многие объяснения JOIN неверны, и люди запутываются.
Давайте попробуем это исправить.
https://minimalmodeling.substack.com/p/many-explanations-of-join-are-wrong
SQL форматтер
Инструмент под названием SQL Formatter, который помогает разработчикам форматировать код SQL для обеспечения читаемости и согласованности.
https://sql-formatter-org.github.io/sql-formatter
Давайте попробуем это исправить.
https://minimalmodeling.substack.com/p/many-explanations-of-join-are-wrong
SQL форматтер
Инструмент под названием SQL Formatter, который помогает разработчикам форматировать код SQL для обеспечения читаемости и согласованности.
https://sql-formatter-org.github.io/sql-formatter
Substack
Many explanations of JOIN are wrong, and people get confused
Most common explanations of JOIN are incomplete and build the wrong mental model. As the result, people get confused. In this post we discuss the generalized case of LEFT JOIN.
Создание более быстрой хеш-таблицы для высокопроизводительных SQL-соединений
https://questdb.io/blog/building-faster-hash-table-high-performance-sql-joins/
https://questdb.io/blog/building-faster-hash-table-high-performance-sql-joins/
questdb.io
Building a faster hash table for high performance SQL joins
Why is a fast hash table important for optimal SQL performance? We answer this question and explain how the QuestDB team designed FastMap, our hash table specialized for SQL execution.