Роман Теличко

Заметки веб-разработчика/админа

PostgreSQL: Создание индекса для uuid[]

// Март 25, 2018 | 27 просмотров | комментариев (0)

Для начала что такое uuid:

UUID (universally unique identifier) — это стандарт идентификации, используемый в создании программного обеспечения, стандартизированный Open Software Foundation (OSF) как часть DCE — среды распределённых вычислений (Distributed Computing Environment (англ.)). Основное назначение UUID — это позволить распределённым системам уникально идентифицировать информацию без центра координации. Таким образом, любой может создать UUID и использовать его для идентификации чего-либо с приемлемым уровнем уверенности, что данный идентификатор непреднамеренно никогда не будет использован для чего-то ещё. UUID представляет собой 16-байтный (128-битный) номер.

В PostgreSQL, по умолчанию, нет индекса для столбцов массива uuid (uuid[]).
Для примера, вот простая таблица с столбцом массива uuid:

CREATE TABLE someitems (
    items uuid[]
);

Но когда мы пытаемся создать на нем индекс:

CREATE INDEX someitems_items_index ON someitems USING GIN (items);

Получаем следующую ошибку:

ERROR:  data type uuid[] has no default operator class for access method "gin"

Поэтому мы должны создать тип индекса, который понимает, как сравнивать элементы массива uuid (uuid[]).
Читать далее…

Установка и оптимизация Raspbian на Raspberry Pi

// Март 11, 2018 | 380 просмотров | комментариев (0)

Начнём с Википедии, если для вас эти слова в новинку 🙂

Raspberry Pi — одноплатный компьютер размером с банковскую карту, изначально разработанный как бюджетная система для обучения информатике, впоследствии получивший намного более широкое применение и популярность, чем ожидали его авторы. Разрабатывается Raspberry Pi Foundation. Всего за пять лет было продано более 12,5 миллионов устройств.

Raspberry Pi 3 Model B

  1. Скачиваем и устанавливаем Raspbian на SD-карту
  2. Первая загрузка
  3. Настраиваем сеть
  4. Закрываем всё ненужное с помощью iptables
  5. Оптимизируем дисковые операции
  6. Оптимизируем оперативную память

Читать далее…