Pull to refresh
42
0
Send message

NULL-значения в PostgreSQL: правила и исключения

Reading time8 min
Views41K

Навскидку многим кажется, что они знакомы с поведением NULL-значений в PostgreSQL, однако иногда неопределённые значения преподносят сюрпризы. Предлагаем вашему вниманию расшифровку доклада Алексея Борщева с PGConf.Russia 2022 — он был полностью посвящён особенностям NULL-значений в Postgres.

NULL простыми словами

Что такое SQL база данных? Согласно одному из определений, это просто набор взаимосвязанных таблиц. А что такое NULL? Обратимся к простому бытовому примеру: все мы задаём друг другу дежурный вопрос: «Как дела?». Часто мы получаем в ответ: «Да ничего...» Вот это «ничего» нам и нужно положить в базу данных — NULL, неопределённое, некорректное или неизвестное значение.

Читать далее
Total votes 35: ↑34 and ↓1+33
Comments22

Чем PostgreSQL лучше других SQL баз данных с открытым исходным кодом. Часть 1

Reading time8 min
Views285K
Сегодня давайте поговорим о преимуществах Postgres перед другими системами с открытым кодом. Эту тему мы обязательно раскроем более подробно на PG Day'16 Russia, до которой осталось всего два месяца.

Возможно, вы спрашиваете себя: «Почему PostgreSQL?» Ведь есть и другие варианты реляционных баз данных с открытым исходным кодом (в рамках этой статьи мы рассматривали MySQL, MariaDB и Firebird), так что же Постгрес может предложить такого, чего нет у них? В слогане PostgreSQL заявляется, что это «Самая продвинутая база данных с открытым исходным кодом в мире». Мы приведем несколько причин, почему Постгрес делает такие заявления.

В первой части этой серии мы поговорим о хранении данных — модели, структуре, типах и ограничениях размера. А во второй части больше сфокусируемся на выборке и манипуляциях с данными.


Читать дальше →
Total votes 55: ↑46 and ↓9+37
Comments86

Чем PostgreSQL лучше других SQL баз данных с открытым исходным кодом. Часть 2

Reading time10 min
Views64K
Друзья, представляем вашему вниманию вторую часть перевода «Чем PostgreSQL лучше?». Надеемся, она вызовет такое же горячее обсуждение в комментариях, как и первая часть. А также с радостью продолжим с вами дискуссию лично на PG Day'16 Russia, до которой осталось совсем немного!

В слогане PostgreSQL заявляется, что это «Самая продвинутая база данных с открытым исходным кодом в мире». В первой части этой серии мы рассмотрели хранение данных — модель, структуры, типы и ограничения по размеру, — чтобы дать вам несколько причин, почему Постгрес подтверждает свои слова делом. Во второй части мы поговорим о манипуляциях с данными и поиске, включая индексирование, виртуальных таблицах и возможностях запросов. В этой серии мы выясняем, что выгодно отличает PostgreSQL от других баз данных с открытым исходным кодом, а именно — от MySQL, MariaDB и Firebird.


Читать дальше →
Total votes 49: ↑47 and ↓2+45
Comments32

Путешествие запроса Select через внутренности Постгреса

Reading time9 min
Views28K
До конференции PG Day'16 Russia остались считанные дни, расписание можно посмотреть на нашем сайте. Мы трудимся в поте лица, но тем не менее успеваем готовить для вас переводы самых интересных материалов о PostgreSQL. Сегодня представляем вашему вниманию перевод статьи Pat Shaughnessy о поведении запроса Select.

Готовясь летом к этой презентации, я решил изучить некоторые части исходного кода PostgreSQL на C. Я запустил очень простой запрос select и наблюдал, что Постгрес с ним делает, с помощью LLDB, отладчика C. Как Постгрес понял мой запрос? Как он нашел данные, которые я искал?



Этот пост — неформальный журнал моего путешествия через внутренности PostgreSQL. Я опишу пройденный мной путь и то, что я видел в процессе. Я использую серию простых концептуальных диаграмм, чтобы объяснить, как Постгрес выполнил мой запрос. В случае, если вы понимаете C, я также оставлю вам несколько ориентиров и указателей, которые вы можете поискать, если вдруг решите покопаться во внутренностях Постгреса.

Исходный код PostgreSQL восхитил меня. Он оказался чистым, хорошо задокументированным и простым для понимания. Узнайте сами, как Постгрес работает изнутри, присоединившись ко мне в путешествии в глубины инструмента, которым вы пользуетесь каждый день.
Читать дальше →
Total votes 34: ↑33 and ↓1+32
Comments24

Информатика за индексами в Постгресе

Reading time9 min
Views19K
Друзья, PG Day'16 Russia успешно завершилась, мы перевели дух и уже думаем над тем, как сделать грядущие мероприятия еще более интересными и полезными для вас. Продолжаем публиковать интересные, на наш взгляд, материалы о Постгресе и общаться с вами в комментариях. Сегодня представляем перевод статьи Pat Shaughnessy о том, что из себя представляют индексы в PostgreSQL.

Все мы знаем, что индексы — одна из самых мощных и важных функций серверов реляционных баз данных. Как быстро найти значение? Создать индекс. Что нужно не забыть сделать при объединении двух таблиц? Создать индекс. Как ускорить SQL запрос, который начал медленно работать? Создать индекс.


Но что такое эти индексы? И как они ускоряют поиск по базе данных? Чтобы выяснить это, я решил прочитать исходный код сервера базы данных PostgreSQL на C и проследить за тем, как он ищет индекс для простого текстового значения. Я ожидал найти сложные алгоритмы и эффективные структуры данных. И я их нашёл. Сегодня я покажу вам, как выглядят индексы внутри Постгреса, и объясню, как они работают.

Что я не ожидал найти — что я впервые обнаружил, читая исходный код Постгреса — так это теорию информатики в основе того, что он делает. Чтение исходного кода Постгреса превратилось в возвращение в школу и изучение того предмета, на который у меня никогда не хватало времени в молодости. Комментарии на C внутри Постгреса объясняют не только, что он делает, но и почему.
Читать дальше →
Total votes 56: ↑55 and ↓1+54
Comments18

Эволюция отказоустойчивости в PostgreSQL

Reading time5 min
Views12K
Мы активно готовимся к PG Day'17, расширяем тематику конференции, поэтому в скором времени вас ждет большое количество интереснейших постов не только о PostgreSQL, но и о других широко используемых базах данных. Сегодня хотим предложить вашему вниманию перевод статьи Gulcin Yildirim, которая послужила основой для ее доклада на PG Conf Europe'16.

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



PostgreSQL — это потрясающий проект, который развивается с удивительной скоростью. В этой серии постов мы сосредоточимся на эволюции возможностей отказоустойчивости в PostgreSQL на протяжении всех его версий.
Читать дальше →
Total votes 16: ↑12 and ↓4+8
Comments23

Как заставить PostgreSQL считать быстрее

Reading time15 min
Views23K

Источник фотографии


Все умеют считать, но не все умеют считать быстро. В этой статье мы подробно рассмотрим методы оптимизации count в PostgreSQL. Существуют приемы, которые могут позволить ускорить подсчет количества строк на порядки.


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


  • требуется ли точное количество строк или оценочного значения будет достаточно;
  • следует ли учитывать дубликаты или интересуют только уникальные значения;
  • нужно ли посчитать все строки таблицы или необходимо выбрать только удовлетворяющие определенному условию.

Мы проанализируем решения для каждой конкретной ситуации, а также сравним их скорость и потребление ресурсов. Разобрав ситуацию с централизованной БД, мы воспользуемся Citus, чтобы продемонстрировать параллельное выполнение count в распределенной базе данных.

Читать дальше →
Total votes 29: ↑28 and ↓1+27
Comments5

React.js: собираем с нуля изоморфное / универсальное приложение. Часть 1: собираем стек

Reading time22 min
Views195K
image

Лицо моей жены, когда она вычитывала эту статью


Я решил написать цикл статей, который и сам был бы счастлив найти где-то полгода назад. Он будет интересен в первую очередь тем, кто хотел бы начать разрабатывать классные приложения на React.js, но не знает, как подступиться к зоопарку разных технологий и инструментов, которые необходимо знать для полноценной front-end разработки в наши дни.


Я хочу с нуля реализовать, пожалуй, наиболее востребованный сценарий: у нас есть серверная часть, которая предоставляет REST API. Часть его методов требует, чтобы пользователь веб-приложения был авторизован.

Читать дальше →
Total votes 51: ↑46 and ↓5+41
Comments78

Объясняя необъяснимое

Reading time11 min
Views60K
Друзья, мы с радостью продолжаем публикацию интересных материалов, посвященных самым разнообразным аспектам работы с PostgreSQL. Сегодняшний перевод открывает целую серию статей за авторством Hubert Lubaczewski, которые наверняка заинтересуют широкий круг читателей.



Одна из первых вещей, которую слышит новоиспеченный администратор баз данных – «используй EXPLAIN». И при первой же попытке он сталкивается c непостижимым:

                                                        QUERY PLAN
---------------------------------------------------------------------------------------------------------------------------
 Sort  (cost=146.63..148.65 rows=808 width=138) (actual time=55.009..55.012 rows=71 loops=1)
   Sort Key: n.nspname, p.proname, (pg_get_function_arguments(p.oid))
   Sort Method: quicksort  Memory: 43kB
   ->  Hash Join  (cost=1.14..107.61 rows=808 width=138) (actual time=42.495..54.854 rows=71 loops=1)
         Hash Cond: (p.pronamespace = n.oid)
         ->  Seq Scan on pg_proc p  (cost=0.00..89.30 rows=808 width=78) (actual time=0.052..53.465 rows=2402 loops=1)
               Filter: pg_function_is_visible(oid)
         ->  Hash  (cost=1.09..1.09 rows=4 width=68) (actual time=0.011..0.011 rows=4 loops=1)
               Buckets: 1024  Batches: 1  Memory Usage: 1kB
               ->  Seq Scan on pg_namespace n  (cost=0.00..1.09 rows=4 width=68) (actual time=0.005..0.007 rows=4 loops=1)
                     Filter: ((nspname <> 'pg_catalog'::name) AND (nspname <> 'information_schema'::name))

Что бы это могло значить?
Читать дальше →
Total votes 33: ↑31 and ↓2+29
Comments23

Как получить Blue Card или вид на жительство в Германии и сколько это стоит

Reading time4 min
Views12K
Поскольку вопрос получения разрешения на работу всегда очень важен, мне удалось по знакомству выйти на немецкую фирму, которая оказывает услуги релокации специалистам, приезжающим на работу в Германию. Предлагаю вашему вниманию следующую информацию включая примерные сроки и тарифы, Сроки и тарифы примерные, потому что как правило все случаи индивидуальны и очень часто окончательное решение за должностным лицом, которое рассматривает заявление.
Читать дальше →
Total votes 12: ↑8 and ↓4+4
Comments16

50+ лучших дополнений к Bootstrap

Reading time5 min
Views202K


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

Для статьи я подобрал наиболее полезные дополнения «на все случаи жизни».
Читать дальше →
Total votes 123: ↑111 and ↓12+99
Comments25

Краткая история бессмертия

Reading time13 min
Views83K
image

Физика не стоит на месте. В последнем эксперименте на Большом адронном коллайдере лептоны были подвергнуты интенсивной бомбардировке флуктуирующими протонами. В результате зафиксирован обрыв глюонной струны, сопровождаемый двойным излучением ранее неизвестного типа. Ученые затрудняются его идентифицировать.
Читать дальше →
Total votes 341: ↑216 and ↓125+91
Comments111

Размеры экранов

Reading time2 min
Views548K
Планшеты и смартфоны оснащаются экранами с разными соотношениями сторон и разной плотностью пикселей, однако эти параметры редко указываются в технических характеристиках.

Попробуем разобраться со всеми хитростями, связанными с этими параметрами. Начнём с планшетов.
Вот соотношение размеров экранов, использующихся в большинстве современных планшетов.



Обратите внимание, насколько экран 8" с соотношением сторон 4:3 визуально больше широкого экрана 7". А широкий экран 10.1" на сантиметр меньше экрана 9.7" по высоте.

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



Текст на экранах с низким PPI (количеством точек на дюйм) читается не комфортно. Я бы не стал покупать планшет с экраном, имеющим PPI ниже 150. Даже 164 PPI экрана iPad mini многим кажутся недостаточными. Отлично воспринимаются экраны с PPI больше 200.

Для меня было большим открытием, что экран 9.7" 1024x768 имеет даже меньшее PPI, чем экран 7" 800x480.

Читать дальше →
Total votes 157: ↑147 and ↓10+137
Comments69

Haier привезет бюджетные смартфоны в Россию

Reading time2 min
Views49K
Компания Haier, известная на рынке России своими холодильниками (прославившаяся тем, что директор в эпоху становления бренда заставил рабочих разбить целую партию бракованных холодильников, вычтя эти деньги из их зарплаты), а старожилы могут помнить и обычные недорогие мобильники этой компании в начале 2000-х — решила вернуться в Россию со смартфонами. Бюджетного сегмента. С демпингующими расценками.

image

Старт продаж 5 смартфонов, имеющих «заводские» наименования Haier HW-W801, G20, V6M, One X и V11 запланирован уже на конец 2012 года. Самый дорогой, с экраном 4.5" 1280х720, будет стоить 8000 рублей, а самые бюджетные модели за 4000р будут далеко не с QVGA-экранами, как это принято сегодня.

Под катом — фотки и перечень основных характеристик каждого из смартфонов.

Читать дальше →
Total votes 44: ↑40 and ↓4+36
Comments34

Утекла информация о необычной камере от Sony

Reading time1 min
Views44K
В сети обнаружился снимок новой камеры от Sony — Sony RX-1. Утверждают, что камера будет оснащаться полноразмерной матрицей, имея при этом довольно компактные размеры.

image

Читать дальше →
Total votes 11: ↑7 and ↓4+3
Comments52

29-дюймовый монитор от LG

Reading time1 min
Views23K
В январе в продажу поступит вот такая вот штуковина от LG:


Монитор EA93

29 дюймов
2560*1080
21:9
IPS
Угол обзора: 178°
2 встроенных динамика

Порты
DVI, DisplayPort, HDMI
2хMHL
3хUSB 3.0
Выход на гарнитуру

Есть функция разделения экрана с автоматическим изменением размера уже открытых окон при изменении одного из них.



В принципе, EA93 вполне может заменить 2 монитора, для тех, кто привык работать в таком ритме. Можно смотреть видео с разрешением 2560*1080.

Точная цена этой модели пока неизвестна, но продаваться она начнет одновременно с младшим братом — EA83, 27 дюймов.

EA83 можно будет купить за 800$.

via
Total votes 54: ↑53 and ↓1+52
Comments87

Стив Джобс как тест Роршаха

Reading time7 min
Views19K


В 1997 году, вскоре после возвращения в Apple на должность гендиректора, Стив Джобс решил, что транспортная компания доставляет им компоненты недостаточно быстро. Перевозчик в ответ заявил, что не может доставлять быстрее, да и не должен: зафиксированные в договоре сроки соблюдались. Джобс велел разорвать контракт. И добавил, что если попробуют судиться, то никогда больше не получат ни цента.
Читать дальше →
Total votes 194: ↑131 and ↓63+68
Comments98

«Киев-20» — флагман украинской фототехники

Reading time3 min
Views20K
image

Итак, в этой статье речь пойдет пленочном фотоаппарате Киев-20, также мы немного погрузимся в историю его создания, и конечно, куда без описания и техничских характеристик.
Читать дальше →
Total votes 62: ↑49 and ↓13+36
Comments97

Карманный роутер Sapido RB-1632

Reading time2 min
Views30K


Не могу не поделиться восторгом от недавно купленного устройства.

Роутер, несмотря на свои размеры, имеет множество функций. Помимо стандартных Ethernet -> Wi-Fi, может выступать wifi-клиентом, имеет USB-хост для подключения модема и смартфонов, может одновременно создавать несколько Wi-Fi сетей с разными настройками и прочее. Питается при помощи USB либо от адаптера.
Читать дальше →
Total votes 91: ↑82 and ↓9+73
Comments45

Виджет комментариев вконтакте для вашего сайта и хранение количества комментариев на сервере

Reading time3 min
Views33K
Двигаясь в ногу со временем, я решил разместить на своем сайте виджет комментариев «Вконтакте». Немного терпения, гугла и документации вполне достаточно для того чтобы достичь результата. Разместить сам виджет не составляет никакого труда, вконтакте предоставляет простой интерфейс генерирующий код для сайта. Мне хотелось в некоторых местах отображать количество комментариев. Тут и возникли сложности, как обычно это бывает, дьявол кроется в мелочах. Я попробую разложить по полочкам то, о чём умалчивает документация.
Читать дальше →
Total votes 10: ↑6 and ↓4+2
Comments6
1
23 ...

Information

Rating
Does not participate
Location
Минск, Минская обл., Беларусь
Registered
Activity