Оптимизиране на логичния дизайн
Логическото ниво се отнася до структурата на заявката и самите таблици. Опитайте се първо да увеличите максимално това. Целта е достъп до възможно най-малко данни на логическо ниво.
- Имате най-ефективните SQL заявки
- Проектирайте логическа схема, която поддържа нуждите на приложението (напр. тип на колоните и т.н.)
- Проектирайте компромис, за да поддържате някои случаи на употреба по-добре от други
- Релационни ограничения
- Нормализиране
Оптимизиране на физическия дизайн
Физическото ниво се занимава с нелогически съображения, като тип индекси, параметри на таблиците и т.н. Целта е да се оптимизира IO, който винаги е тясното място. Настройте всяка маса, за да отговаря на нейните нужди. Малка таблица може да бъде заредена постоянно в кеша на СУБД, таблица с ниска скорост на запис може да има различни настройки от таблица с висока скорост на актуализиране, за да заема по-малко дисково пространство и т.н. В зависимост от заявките може да се използва различен индекс и т.н. денормализирани данни прозрачно с материализирани изгледи и др.
- Параметри на таблиците (размер на разпределението и т.н.)
- Индекси (комбинирани, типове и т.н.)
- Параметри за цялата система (размер на кеша и т.н.)
- Дялове
- Денормализиране
Опитайте първо да подобрите логическия дизайн, след това физическия. (Границата между двете обаче е неясна, така че можем да спорим относно моята категоризация).
Оптимизиране на поддръжката
Базата данни трябва да се управлява правилно, за да остане възможно най-ефективна. Това включва няколко стъпки за поддръжка, които могат да окажат влияние върху ефективността, напр.
- Поддържайте статистиката актуална
- Периодично променяйте последователността на критичните таблици
- Поддръжка на диск
- Всички системни неща, за да имате разтърсващ сървър