Sql извлекает всю таблицу, а затем фильтрует в python или извлекает таблицу в нескольких запросах

#python #sql #postgresql

Вопрос:

Я разрабатываю складскую платформу в flask с базой данных PostgreSQL. У меня есть таблица продуктов, в которой задано состояние продукта(черновик(0), ожидание(1) или созданный(2)). Модель продукта выглядит более менее так:

Product(id INT,lot INT,name VARCHAR(50),shelf INT,type INT,state INT,...)

Я должен отображать продукты в зависимости от их состояния, так что было бы лучше:

  • SELECT * FROM Product;

    Извлеките всю таблицу и разделите ее на три части в python после извлечения

    или

  • SELECT * FROM Product WHERE state==0;
    SELECT * FROM Product WHERE state==1;
    SELECT * FROM Product WHERE state==2;

    Запросите таблицу один раз для любого возможного состояния, чтобы таблица уже была разделена.

    Я предполагаю, как правило, что меньше запросов лучше, чем больше, но, с другой стороны, я полагаю, что фильтрация sql выполняется быстрее, чем в python. Итак, что было бы наиболее подходящим для условий выполнения?

    Заранее спасибо