Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр
Управляйте маятником, чтобы построить самую высокую (и устойчивую) башню из падающих сверху постов. Следите за временем на каждый бросок по полоске справа: если она закончится, пост упадет мимо башни.

Башня

Аркады, Строительство, На ловкость

Играть

Топ прошлой недели

  • AlexKud AlexKud 38 постов
  • SergeyKorsun SergeyKorsun 12 постов
  • SupportHuaport SupportHuaport 5 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня

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

С этим тегом используют

Субд Производительность Мониторинг Тестирование Нейронные сети IT Программист IT юмор Разработка Python Картинка с текстом Юмор Все
28 постов сначала свежее
9
rostikt
1 год назад
Лига программистов

Вы крутые, спасибо за поддержку! (Продолжение "Я стал Ютубером!")⁠⁠

Честно говоря, даже не рассчитывал на такой отклик на мой предыдущий пост. 30 подписчиков на Youtube, ценные комментарии и советы, да и просто слова поддержки!

За эти две недели мне удалось выпустить еще два ролика:
- Техника собеседования STAR (7 минут)
- Третья часть серии "Кодим с chatGPT" (17 минут)

К сожалению, охват моих видео пока не очень большой, хотя видео про STAR приняли очень тепло, судя по лайкам.

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

Кроме того, он неплохо разбирается в существующих библиотеках и сумел предложить мне два очень приличных варианта с полнофункциональным календарем. И это притом, что я использую версию 3.5, а не 4. В общем, мне кажется, из всего этого выйдет неплохой результат, но посмотрим. До работающего приложения еще очень далеко.

Одно могу сказать точно: если бы я писал код с нуля, я бы потратил на него раз в 5 больше времени, с учетом исправления всех ошибок, которые иногда допускает chatGPT.

Ну и немного внутренней кухни (кажется, эта рубрика становится постоянной):

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

а) не могу просто как ни в чем не бывало заново его просить делать то, о чем уже просил (потому что он "знает", что я уже задавал этот вопрос и его ответ будет учитывать предыдущие ответы)

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

Приходится танцевать с бубном. Например, после записи я понял, что у меня был косяк с гарнитурой и звук был фиговый. Пришлось на имеющийся видеоряд с записью экрана накладывать новый аудио-видео ряд с голосом и миниатюрной головой. Это вылилось в адок на монтаже, общее время монтажа 17-минутного ролика составило часов 15. Всё для вас, дорогие будущие зрители :)

Спасибо за поддержку, буду рад новым подпискам на канал и идеям по развитию!

Показать полностью
[моё] Блог ChatGPT Программирование YouTube Видеоблог Angular Nodejs Postgresql IT Искусственный интеллект Кодирование Приложение Автоматизация Технологии Javascript Typescript Веб-разработка API Текст
0
17
rostikt
1 год назад
Лига программистов

Я стал Ютубером!⁠⁠

Итак, это случилось! Я завел свой канал по тематике программирования и даже выложил уже два видеоролика на него.

На самом деле, это сложнее, чем кажется. Ведь нужно говорить в камеру, и говорить что-то осмысленное, интересное, а я, признаться, очень стеснялся :) Ну там, как выгляжу, как говорю, что там видно в фоне... А потом просто взял и решился. Теперь вот делюсь с Пикабу. Поддержите меня, пожалуйста!

Очень хотелось приносить какую-то пользу, ведь у меня более 10 лет опыта во фронтенде, и мне очень нравится делиться знаниями. Но о чем можно говорить, что можно придумать такого, на что еще не снято 1000 роликов от блоггеров тысячников и миллионников?

Потом, как-то одним вечером мне пришла идея написать большое полноценное приложение, используя только chatGPT. И где-то через два потраченных вечера меня осенило: ведь я могу все свои шаги записывать и выкладывать на Ютуб! Вот и будет интересная тематика, и еще я смогу своим опытом делиться (вы же понимаете, за этим чатом нужно все перепроверять...).

В общем, первые два ролика уже на канале, далее планирую выпускать новые ролики еженедельно.

Канал мой сейчас имеет аж двух подписчиков, один из них - моя супруга :)


В общем, вот: https://www.youtube.com/@Rostik-T

Ну и немного внутренней кухни:

Ролик, протяженностью 20 минут (после монтажа) я записываю где-то час. Монтаж ролика занимает у меня примерно 6 часов. Это удаление пауз, эээканья, неудачных фраз, которые потом перезаписываю, работа со скоростью видео и прочее.

И примерно 30-40 минут уходит на оформление ролика в ютубе и рисование превью.

Задавайте вопросы, с радостью отвечу! Критику тоже приму с радостью, только не закидывайте уж очень сильно тапками, пожалуйста :)

Пост без рейтинга.

Показать полностью
[моё] Блог ChatGPT Программирование YouTube Видеоблог Angular Nodejs Postgresql Без рейтинга IT Текст
19
22
IliaHohlov
IliaHohlov
1 год назад
Лига программистов

Задачи с собеседования по SQL про псевдостолбцы⁠⁠

Задачи с собеседования по SQL про псевдостолбцы Программирование, IT, Собеседование, База данных, Oracle, Mysql, Ms SQL, Postgresql, SQL, Длиннопост

Здравствуйте, друзья!

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

Эти и другие задачи с собеседования опубликованы в нашем Телеграм-канале.

Итак, задача номер 1:

В таблице TEMP_TABLE один столбец и пять строк.
Запрос SELECT 1 FROM TEMP_TABLE

а) выведет данные из первого столбца для всех строк;

б) выведет просто цифру 1;

в) выведет пять строк, в каждой из которых будет цифра 1;

г) выдаст ошибку.

Здесь нужно поставить чтение на паузу и выбрать правильный вариант ответа.
На сегодня разброс ответов на задачу такой (правильный ответ в зелёном цвете):

Задачи с собеседования по SQL про псевдостолбцы Программирование, IT, Собеседование, База данных, Oracle, Mysql, Ms SQL, Postgresql, SQL, Длиннопост

Объяснение: данный в задаче запрос выводит данные из таблицы TEMP_TABLE (так как SELECT..FROM TEMP_TABLE), поэтому будут выводиться строки из неё (все сколько есть). Но в блоке SELECT не указан ни один из (настоящих) столбцов таблицы. Не выбираются данные из какого-либо столбца.
В нашем примере указано что пока выводятся строки из таблицы TEMP_TABLE нужно выводить цифру 1, а не показывать данные какого-либо столбца.

Задача 2:
Дана следующая таблица TEST_TABLE с тремя строками:
SELECT * FROM TEST_TABLE
ID  NAME
1  NULL
2  NULL
3  NULL
Каков будет результат следующего запроса: SELECT SUM(1) FROM TEST_TABLE?

Здесь опять нужно поставить чтение на паузу и написать правильный вариант ответа. На сегодня разброс ответов на задачу такой (правильный ответ в зелёном цвете):

Задачи с собеседования по SQL про псевдостолбцы Программирование, IT, Собеседование, База данных, Oracle, Mysql, Ms SQL, Postgresql, SQL, Длиннопост

Объяснение: здесь тоже речь идёт о псевдостолбце. Пока выводятся данные из TEST_TABLE блок SELECT выводит единицу, а не какой-либо реальный столбец таблицы. Пока не смотрите на функцию SUM. Итого единица выведется три раза (по количеству строк в таблице). И вот теперь, с помощью функции SUM получим сумму всех введённых чисел (единичек), то есть число 3.

Ещё больше SQL-задач с собеседований и реальной практики в разных СУБД в нашем Телеграм-канале.

Заходи на наш Youtube-канал и найдёшь много интересного и полезного про базы данных и язык SQL.

Показать полностью 2
[моё] Программирование IT Собеседование База данных Oracle Mysql Ms SQL Postgresql SQL Длиннопост
0
7
rick1177
rick1177
1 год назад
Программирование на python

Вопросы Незнайки по программированию на Python (вопрос 1)⁠⁠

Разъясните сущность получения соединения с базой и курсора и что происходит в неожиданных ситуациях.

Товарищи, прошу не уничтожать сильно за описанные вопросы. Я просто учусь. Искренне надеюсь на помощь сообщества и некоторое наставничество.

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

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

Речь пойдёт про работу с базой данных PostgreSQL в приложении на Python.

Итак. Из базовых описаний процесса работы мы знаем, что при работе с БД требуется провести простой объём операций, в частности:

# Создать объект "соединение"
conn = psycopg2.connect(паратметры)
# Получить курсор по этому соединению
cursor = conn.cursor()
# Формируем какой-то запрос
cursor .execute("Запрос на вставку данных в базу")
# Отправляем данные в базу
conn .commit()
# Закрываем соединение
conn .close()

Кажется всё просто. Но есть ряд вопросов.

  1. А что, собственно, собой представляет объект conn? Имеется ввиду, что происходит на стороне базы, когда запрашивается соединение? Производится какая-то запись куда-то? Как это выглядит?

  2. Почему объект conn нельзя десериализовать, чтобы передавать его между процессами в мультипроцессинге?

  3. А что если твоё приложение и функция, которая открыла соединение упала, не закрыв соединение, что происходит с соединением на стороне базы?

  4. А если твой код выглядит примерно так (ниже). Т.е. в бесконечном цикле в отдельном процессе выполняется функция, тогда как закрывать соединение? Когда? А что будет, если программа вылетит?

    def функция(параметры):

    conn = psycopg2.connect(паратметры)

    cursor = conn.cursor()

    while True:

    cursor .execute(запрос)

    conn.commit()

    time.sleep(2)

    if __name__ == "__main__":

    mp_take_proxy_us_proxy_org = mp.Process(target=Фнукция, kwargs={параметры}, )

Вот пока вроде и весь пул вопросов. Подскажите, пожалуйста.

Показать полностью
[моё] Вопрос Программирование Python Помощь Postgresql Текст
48
1
TyuleshPelmesh
2 года назад
Лига программистов

Производительность БД с одной и многими таблицами. Мини-тест⁠⁠

В прошлом посте обмолвился, что собираюсь в своей базе данных завести каждому пользователю по табличке. Ну потому что у меня запросы всегда только для одного пользователя, а значит можно сэкономить ресурсы сервера на индексации, так я думал. Мне накидали полную панамку что так делать нельзя, но почему – никто особо не объяснил. И я решил бахнуть небольшой тест на нескольких БД – проверить что там будет на самом деле.

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

Итак, тестовая задача, более- менее приближенная к моему сценарию:

периодически пользователи закидываеют в БД записи в которой есть ID пользоватея, время записи, текстовая метка (комментарий) и какой-то параметр (число)

INSERT INTO mega_table (id, dt, txt, dat_stat) VALUES ( %s, %s, %s, %s )

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

SELECT SUM( dat_stat ) FROM mega_table WHERE id=%s AND dt < %s AND dt > %s AND txt = %s

Проверял 3 БД: MySQL сдвижками InnoDB и MyISAM, SQLite и Postgres. Написал скрипт, который эмулирует заполнение БД и запросы к ней, и измеряет сколько времени занимает добавление записи и выполнение запроса. Скачать скриптец можно тут (он сугубо тестовый, т.е. стрёмный и без никакой обработки ошибок, уж сорян). Менял количество пользователей и количество записей у каждого пользователя и смотрел что будет если всё писать в одну таблицу, либо каждому пользователю создавать отдельную. Заодно после выполнения скрипта посмотрел сколько полученные базы данных занимают места на диске.
И вот получились такие таблички.

Производительность БД с одной и многими таблицами. Мини-тест Программирование, Python, IT, Mysql, Postgresql, База данных, Тест, Чайник, Длиннопост
Производительность БД с одной и многими таблицами. Мини-тест Программирование, Python, IT, Mysql, Postgresql, База данных, Тест, Чайник, Длиннопост
Производительность БД с одной и многими таблицами. Мини-тест Программирование, Python, IT, Mysql, Postgresql, База данных, Тест, Чайник, Длиннопост

Какие выводы я для себя сделал.

Во первых видно, что если делать по таблице для каждого пользователя, то и добавление записи, и обработка запроса и размер БД получаются вобщем не лучше, чем если завести одну таблицу на всех. Единственное исключение – выполнение запросов в SQLite (и в некоторых случаях для Postgre) может быть в разы быстрее на многих таблицах, чем на одной. Почему так получается? Думаю потому что БД люто заоптимизированы очень крутыми чуваками под определенные сценарии использования. И если ты не столь-же крут (я лично нет), то нужно выбрать наиболее подходящую БД и подгонять свою задачу под типичные сценарии использования этой БД.

Во вторых если мне важнее скорость добавления/чтения (т.е. экономить вычислительные ресурсы) то из протестированных лучше пользовать Postgres, если важнее экономить место на диске – то MySQL с движком MyISAM. MySQL с движком InnoDB где-то посередине.

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

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

В любом случае это было интересно сделать, надеюсь кому-то было интересно и почитать.

Показать полностью 3
[моё] Программирование Python IT Mysql Postgresql База данных Тест Чайник Длиннопост
29
user5467549
2 года назад

Какие игдексы существуют в PostgreSQL⁠⁠

Какие игдексы существуют в PostgreSQL PHP, Алгоритм, Postgres, Postgresql, Разработка, Длиннопост, Программирование

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

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

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

Некоторые из основных методов, которые вы можете реализовать в классе B-дерева в PHP, могут включать:

  • insert($value) - добавляет новое значение в дерево

  • delete($value) - удаляет значение из дерева

  • search($value) - ищет значение в дереве и возвращает true, если найдено, и false в противном случае

  • getMinimum() - возвращает минимальное значение в дереве

  • getMaximum() - возвращает максимальное значение в дереве

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

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

В PHP так же можно использовать сторонние библиотеки для реализации B-дерева, к примеру, "btree" или "B-tree" или "php-btree". Использование сторонних библиотек может значительно упростить процесс реализации B-дерева в вашем PHP-коде и обеспечить более надежную и оптимизированную реализацию.

Так же стоит отметить time complexity и space-complexity

Time complexity B-дерева обычно определяется как O(log n), где n - это количество элементов в дереве. Это достигается за счет того, что каждый узел дерева содержит не более t-1 ключей и t дочерних узлов, таким образом максимальная глубина дерева ограничена log(n/t).

Space complexity определяется как O(n), где n - это количество элементов в дереве. Это означает, что память, необходимая для хранения дерева, зависит от количества элементов в дереве. Каждый узел дерева содержит не более t-1 ключей и t дочерних узлов, поэтому количество узлов в дереве будет ограничено n/t.

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

"Introduction to Algorithms" авторы: Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein. Эта книга считается одним из лучших учебников по алгоритмам и структурам данных и включает подробное описание B-дерева и других структур данных.

"Database Systems: The Complete Book" автор: Hector Garcia-Molina, Jeff Ullman, and Jennifer Widom. Эта книга посвящена базам данных и включает подробное описание B-дерева и других индексных структур, используемых в базах данных.

"Algorithms in C++" автор: Robert Sedgewick. Эта книга предоставляет практическое руководство по алгоритмам и структурам данных на языке С++ и включает код для реализации B-дерева.

Спасибо за дополнения и замечания https://t.me/gasoid

Ещё больше полезной информации тут https://vk.com/work2oq

Показать полностью 1
[моё] PHP Алгоритм Postgres Postgresql Разработка Длиннопост Программирование
4
2
rick1177
rick1177
3 года назад
Лига программистов

Вопрос по PostgesSQL от новичка⁠⁠

Товарищи, помогите, плиз!

Опубликовал вопрос на Форуме, но ответов нет. А очень хочется разобраться (сейчас активность стала там вообще низкой).

Я опубликовал свой вопрос на Форумах здесь и здесь, но вообще нет реакции.

Гуру, помогите, плиз.



Вопрос был такой:


Товарищи, научите плиз.

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

Вот так выглядит мой запрос:

SEL ECT 'SELECT ' ||
ARRAY_TO_STRING(ARRAY(
SELECT COLUMN_NAME::VARCHAR(50)
FR OM INFORMATION_SCHEMA.COLUMNS
WH ERE TABLE_NAME='employee' AND
COLUMN_NAME NOT IN ('first_name') ORDER BY ORDINAL_POSITION
), ', ') || ' FR OM employee;';

Но эта зараза не выводит таблицу. Не могу понять в чём ошибка.

Моя таблица сформирована вот так:

-- Table: public.employee
-- DR OP TABLE IF EXISTS public.employee;
CRE ATE TABLE IF NOT EXISTS public.employee
(
id BIGINT NOT NULL DEFAULT NEXTVAL('employee_id_seq'::regclass),
first_name CHARACTER VARYING(50) COLLATE pg_catalog."default" NOT NULL,
last_name CHARACTER VARYING(50) COLLATE pg_catalog."default" NOT NULL,
gender CHARACTER VARYING(6) COLLATE pg_catalog."default" NOT NULL,
email CHARACTER VARYING(150) COLLATE pg_catalog."default",
date_of_birth DATE NOT NULL,
country_of_birth CHARACTER VARYING(50) COLLATE pg_catalog."default" NOT NULL,
CONSTRAINT employee_pkey PRIMARY KEY (id)
)
TABLESPACE pg_default;

В вот данные: https://transfiles.ru/1gt3q

Показать полностью
Postgresql SQL Программирование Текст
27
3
RedManul
RedManul
4 года назад
Лига программистов

Курсы по postgresql⁠⁠

Привет великая лига программистов!
Назрел вопрос карьеры. В 32 годика я решил перучиться и стать супер БДшником. Листаю интернеты всякие и понимаю, что курсов полно, но нужен направляющие совет. Варианты с Баумановскими курсами привлекателен, но они разбиты и порционные, а так же их слишком много. Завтра наверное листану habr, как вариант и там найдётся что-нибудь.
Возможно ссможете подсказать по литературе для чайноков в этой сфере и it, касаемо обучению работы с данной БД, СУБД и вообще о принципах работы баз данных? Так же интересуют курсы. Может посоветуете?
Да, я знаю, что поздно, да я понимаю, что буду junir-ом, да я понимаю, что учёба будет уже всю жизнь.

Учеба Программирование Postgresql Текст
46
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии