Як зазначалося, існує численні потенційні проблеми з продуктивністю. Одного разу я працював над базою даних, де розміщення в кінці дуже великих стовпців покращило продуктивність, якщо ви не вказали ці стовпці у своєму запиті. Очевидно, якщо запис охоплював кілька дискових блоків, механізм бази даних міг припинити читання блоків, як тільки отримає всі необхідні стовпці.
Звичайно, будь-які наслідки для продуктивності сильно залежать не тільки від виробника, який ви використовуєте, але й потенційно від версії. Кілька місяців тому я помітив, що наш Postgres не може використовувати індекс для порівняння "як". Тобто, якщо ви написали "якийсь стовпець на зразок" М% "", він був недостатньо розумним, щоб перейти до М і вийти, коли знайшов першу Н. Я планував змінити купу запитів, щоб використовувати "між". Тоді ми отримали нову версію Postgres, і вона розумно обробляла подібні. Радий, що я ніколи не міг змінити запити. Очевидно, тут це не має прямого відношення, але я хочу сказати, що все, що ви робите з міркувань ефективності, може застаріти з наступною версією.
Порядок стовпців майже завжди дуже актуальний для мене, оскільки я регулярно пишу загальний код, який читає схему бази даних для створення екранів. Мої екрани "редагувати запис" майже завжди будуються шляхом читання схеми, щоб отримати список полів, а потім відображаючи їх по порядку. Якби я змінив порядок стовпців, моя програма все одно працювала б, але відображення може бути дивним для користувача. Мовляв, ви очікуєте побачити ім’я / адресу / місто / штат / поштовий індекс, а не місто / адресу / поштовий індекс / ім’я / штат. Звичайно, я міг би встановити порядок відображення стовпців у коді або в керуючому файлі, або щось інше, але тоді кожного разу, коли ми додавали або видаляли стовпець, нам потрібно було пам’ятати, щоб перейти до оновлення керуючого файлу. Я люблю щось говорити. Крім того, коли екран редагування будується виключно зі схеми, додавання нової таблиці може означати написання нульових рядків коду для створення екрана редагування для неї, що дуже класно. (Ну, добре, на практиці, як правило, мені доводиться додавати запис до меню, щоб викликати загальну програму редагування, і я загалом відмовився від загального "вибрати запис для оновлення", оскільки є занадто багато винятків, щоб зробити це практичним .)