Все сервисы Хабра

Сообщество IT-специалистов

Ответы на любые вопросы об IT

Профессиональное развитие в IT

Удаленная работа для IT-специалистов

Хабровчане vs. цифровые сервисы банков: итоги
Войти на сайт
  • Все вопросы
  • Все теги
  • Пользователи

Хабр Q&A — вопросы и ответы для IT-специалистов

Получайте ответы на вопросы по любой теме из области IT от специалистов в этой теме.

Узнать больше
другие проекты хабра
  • Хабр
  • Карьера
  • Фриланс
Задать вопрос

Кирилл

  • 33
    вклад
  • 0
    вопросов
  • 65
    ответов
  • 32%
    решений
Ответы
  • Информация
  • Ответы
  • Вопросы
  • Комментарии
  • Подписки
  • Нравится
  • Достижения
  • Как добавить значение в jsonb, при условии, что такого значения в нем нет?

    Кирилл @kshvakov
    убрать селект, зачем NOT IN (SELECT...?
    Ответ написан более трёх лет назад
    1 комментарий
    Нравится 1 комментарий
  • С чего начать обучение Cloud Computing?

    Кирилл @kshvakov
    12factor.net
    Ответ написан более трёх лет назад
    Комментировать
    Нравится Комментировать
  • Как вставить в постгресе запись сразу в две таблицы, так, чтобы во второй было поле с BIGSERIAL из первой?

    Кирилл @kshvakov
    вообще для "кучи" данных лучше использовать COPY www.postgresql.org/docs/current/static/sql-copy.html

    а чем вас такой вариант смущает ?

    create table banners(banner_id serial primary key, value text);
    create table keywords(keyword_id serial primary key, banner_id int references banners);
    
    
    do $$
    	declare 
    		_banner_id int;
    		i int;
    	begin
    
    
    	FOR i IN 1..10 LOOP 
    	
    		INSERT INTO banners (value) VALUES ('My banner ' || i) RETURNING banners.banner_id INTO _banner_id;
    		
    		FOR i IN 1..100 LOOP 
    		
    			INSERT INTO keywords(banner_id) VALUES (_banner_id);
    		END LOOP;
    	END LOOP;
    	
    
    	end;
    $$;
    Ответ написан более трёх лет назад
    Комментировать
    Нравится 1 Комментировать
  • Что почитать по оптимизации SQL запросов?

    Кирилл @kshvakov
    Начать можно с документации

    postgrespro.ru/doc/performance-tips.html
    https://wiki.postgresql.org/wiki/Performance_Optim...
    Ответ написан более трёх лет назад
    Комментировать
    Нравится Комментировать
  • Какую key/value базу данных выбрать для словаря?

    Кирилл @kshvakov
    hashmap же https://ru.wikipedia.org/wiki/%D0%A5%D0%B5%D1%88-%...
    Ответ написан более трёх лет назад
    6 комментариев
    Нравится 6 комментариев
  • Как получать уведомления от БД, когда в БД произошло добавление/изменение какой-то таблицы и/или поля в таблице?

    Кирилл @kshvakov
    В постгресе есть для этого NOTIFY www.postgresql.org/docs/9.4/static/sql-notify.html
    Ответ написан более трёх лет назад
    Комментировать
    Нравится 1 Комментировать
  • Как получить JSON объект из PostgreSQL?

    Кирилл @kshvakov
    Как-то так:

    select row_to_json(j.*) from (
    
    	select  'string' as parentTableFirstProp, to_json(
    
    		(
    		select to_json(array_agg(r.*)) from (
    			select s as childTableFirstProp from (select unnest('{another string,yet another string}'::text[]) as s) _
    		)as r
    		)
    	) as parentToChildReference
    
    ) as j
    Ответ написан более трёх лет назад
    2 комментария
    Нравится 2 2 комментария
  • Целесообразно ли регистрировать пользователей сайта как PostgreSQL-пользователей?

    Кирилл @kshvakov
    Среди очевидных проблем, с которым я столкнусь - необходимось поддержывать отдельное подключения к PostgreSQL для каждого пользователя


    Даже этого "очевидно" должно хватить чтоб "закопать идею", 1 коннект - 1 процесс и даже если оно не так, сама идея пускать каких-то там пользователей со стороны в СУБД вам не кажется, мягко скажем, странной ?
    Ответ написан более трёх лет назад
    2 комментария
    Нравится 2 комментария
  • Как вызвать функцию PostreSQL в PHP используя PDO?

    Кирилл @kshvakov
    SELECT root_id, level, count(*) as count FROM matrix GROUP BY root_id, level
        HAVING count(*) < power(_type.degree, level);

    Он никуда и ничего не возвращает, о чем и говорит постгрес, и просит вызывать его как PERFORM если уж оно вам надо, видимо нужен INTO в _count, _level, etc ...
    Ответ написан более трёх лет назад
    Комментировать
    Нравится Комментировать
  • Что значят mode в system.cpu.util?

    Кирилл @kshvakov
    man7.org/linux/man-pages/man5/proc.5.html
    Ответ написан более трёх лет назад
    Комментировать
    Нравится Комментировать
  • Как получить доступ к общим данным в template?

    Кирилл @kshvakov
    Напишите функцию в которую передаете контекст и данные для рендера, в ней из контекста "дергайте" то что нужно всегда, добавляйте их к тем данным что пришли и в рендер пихайте, примерно так:

    func HTML(c *Context, name string, data map[string]interface{}) {
    
    	if data == nil {
    
    		data = make(map[string]interface{})
    	}
    
    	data["CurrentUser"] = c.Get("CurrentUser")
    
    	render.HTML(c, name, data)
    }
    Ответ написан более трёх лет назад
    1 комментарий
    Нравится 1 1 комментарий
  • Можно ли перевести базу с mysql на postgresql не переписывая запросы?

    Кирилл @kshvakov
    ненастроенный постгрес нигде не будет эффективен, если запросы не переписывать или переписывать, но не все, зачем тогда менять mysql на postgresql ?
    Ответ написан более трёх лет назад
    2 комментария
    Нравится 2 комментария
  • Как заставить Postgres использовать индексы?

    Кирилл @kshvakov
    Сделайте 2 таблицы, что то вроде

    create table core_keywords(
        keyword_id serial primary key,
        keyword    varchar(100)
    );
    create unique index u_idx_keyword on core_keywords(lower(keyword));
    create index t_idx_keywords on core_keywords using gin (lower(keyword) gin_trgm_ops);
    
    create table core_keywords_entry(
        keyword_id int not null references core_keywords,
        created_at timestamp with time zone not null default CURRENT_TIMESTAMP,
        primary key (keyword_id, created_at)
    );


    ну и будет все проще, что-то вроде

    select 
        e.keyword_id, 
        count(*) 
    from core_keywords_entry as e
    join core_keywords as k using(keyword_id)
    where lower(k.keyword) like  '%something%'
    group by 1
    Ответ написан более трёх лет назад
    11 комментариев
    Нравится 11 комментариев
  • В чем причина того что PostgreSQL сильно нагружает процессор?

    Кирилл @kshvakov
    настройки постгреса выложите, что у вас там по памяти/диску/cpu ?
    дайте pg_stat_bgwriter и pg_stat_database
    Ответ написан более трёх лет назад
    Комментировать
    Нравится Комментировать
  • Rак правильно организовать списание баланса?

    Кирилл @kshvakov
    Никогда так не делайте. Считайте остаток баланса на сервере СУБД в запросе на апдейт
    PS: как работать со списаниями можно почитать, например, начав отсюда https://ru.wikipedia.org/wiki/%D0%94%D0%B5%D0%B1%D...
    Ответ написан более трёх лет назад
    Комментировать
    Нравится 1 Комментировать
  • PostgreSQL pid, как его правильно найти?

    Кирилл @kshvakov
    Вам нужен pg_stat_kcache ( https://github.com/dalibo/pg_stat_kcache ), работает он в паре с pg_stat_statements ( www.postgresql.org/docs/9.4/static/pgstatstatement... )
    Ответ написан более трёх лет назад
    1 комментарий
    Нравится 1 комментарий
  • Можно ли использовать собственный репозитории вместо контейнеров Docker?

    Кирилл @kshvakov
    там все относительно просто:
    1 контейнеры потребляют очень мало ресурсов, контейнеры используют ядро хост-машины
    2 так и есть, тот же гугл с его borg'ом, яндекс с cocaine идут путем когда уже не считаются машины в штуках, а воспринимаются как единое целое вычислительное пространство "в попугаях", сервера выпускаются все более мощные, старые остаются, вот по ним (в зависимости от того сколько машины этих "попугаев" тянет) и можно раскидать разные приложения, с контейнерами это удобно
    3 как и в 2, - да на одном сервере могут "крутиться" разные приложения, т.к. можно "уплотнять" ресурсы, в том же гугле принцип использовать железяку на 100%

    К плюсам докера можно отнести то, что у него достаточно удачный API, который позволяет поверх него легко написать "управлялку" контейнерами, да и "оркестрацию/дискавери" сервисов набросать

    Если есть задача запускать на сервере только какое-то определенное прложение (например интернет-магазин на php/python/go etc...) для "личных" или "корпоративных" целей то докер тут не особо нужен
    Ответ написан более трёх лет назад
    1 комментарий
    Нравится 1 1 комментарий
  • Как писать и читать с postgresql large object через stream на GO?

    Кирилл @kshvakov
    Судя по коду оно там https://golang.org/pkg/io/#ReadWriter, значит можно https://golang.org/pkg/io/#Copy
    Ответ написан более трёх лет назад
    Комментировать
    Нравится Комментировать
  • Что будет быстрее работать?

    Кирилл @kshvakov
    Делайте все в одном, с кучей отдельных только замучаетесь, а толку от них никакого
    Работать "одинаково" будет
    Ответ написан более трёх лет назад
    4 комментария
    Нравится 1 4 комментария
  • Чем сравнить нагрузку и используемые ресурсы разных приложений?

    Кирилл @kshvakov
    Если в Docker'e то поставьте cAdvisor для CPU/RAM/DISK ( https://github.com/google/cadvisor ), если "по быстрому"

    "количество операций чтения+записи" / скорость ответа /количества клиентов - чтения, записи, скорости чего, клиентов каких ?
    Ответ написан более трёх лет назад
    10 комментариев
    Нравится 1 10 комментариев
Оценили как «Нравится»
  • 1
  • 2
  • 3
  • 4
  • Следующие →
Самые активные сегодня
  • rPman
    • 13 ответов
    • 0 вопросов
  • Stalker_RED
    Stalker_RED
    • 10 ответов
    • 0 вопросов
  • sergey-gornostaev
    Сергей Горностаев
    • 7 ответов
    • 0 вопросов
  • Born2Lose
    Валерий
    • 7 ответов
    • 0 вопросов
  • DevMan
    DevMan
    • 5 ответов
    • 0 вопросов
  • Jump
    АртемЪ
    • 5 ответов
    • 0 вопросов
  • © Habr
  • О сервисе
  • Обратная связь
  • Блог

Войдите на сайт

Чтобы задать вопрос и получить на него квалифицированный ответ.
Войти через центр авторизации