Пока вы используете все поля в таблице, значительных различий в производительности между использованием *
и перечислением всех полей нет.
Разница возникает, когда вы каким-то образом меняете раскладку стола. Если вы добавите другое поле, запрос, использующий *
, также автоматически начнет возвращать это поле, даже если оно не будет использоваться. Это увеличит накладные расходы и потенциально приведет к сбою кода, когда данные в записи станут больше, чем буфер, используемый для выборки записей.
Также перечисление полей означает, что они возвращаются в указанном порядке. Если вы измените порядок полей в таблице, запрос, использующий *
, также изменит порядок, в котором возвращаются поля, что может вызвать проблемы в вашем коде. Например, поля BLOB-объектов (например, текст) должны быть извлечены в том порядке, в котором они возвращаются, или значения отбрасываются.