Архитектура UNIX систем более устойчива к вредоносному ПО — не получится так просто взять и без ведома пользователя (и без sudo) переписать важные для работы системы файлы. Так что тут вопрос не только в количестве пользователей.
Одно из преимуществ postgres — наличие GIN/GIST индексов, которые позволяют искать в текстовом поле по условию like '%some text%'.
Необходимо под суперпользователем активировать расширение:
CREATE EXTENSION IF NOT EXISTS pg_trgm;
Пример создания индекса для поля product_name таблицы products:
CREATE INDEX products_name_index ON products USING GIN (lower(product_name) gin_trgm_ops);
Теперь, при запросе
SELECT * FROM products where lower(product_name) like '%test%'
будет использоваться индекс products_name_index.
По личным замерам в таблице на 10 млн строк поиск без индекса выполнялся около 2с, с индексом — 0.1 сек.
P.S. можно вообще использовать тип поля citext, который хранит без учета регистра (полезная фича для хранения e-mail и т.д.). Тогда в индексе и запросе lower вообще не нужен.
Windows 10 — хорошая система. По крайней мере, лучше 8/8.1. Сбор персональной информации — да, спорный вопрос. Прелесть в том, что всегда найдется способ обмануть систему и запретить отправку данных на сервера. Та же история и с рекламой. Подавляющее количество пользователей вообще не будут волноваться на этот счет.
Ну хоть будет уроком на будущее.
Но ещё один мессенджер? Серьезно? Зачем, ведь есть Telegram и куча других альтернатив.
Необходимо под суперпользователем активировать расширение:
Пример создания индекса для поля product_name таблицы products:
Теперь, при запросе
будет использоваться индекс products_name_index.
По личным замерам в таблице на 10 млн строк поиск без индекса выполнялся около 2с, с индексом — 0.1 сек.
P.S. можно вообще использовать тип поля citext, который хранит без учета регистра (полезная фича для хранения e-mail и т.д.). Тогда в индексе и запросе lower вообще не нужен.
Исправьте ошибку