Mam taką tabelę sesji:
"CREATE TABLE session (
`id` VARCHAR(64) NOT NULL, PRIMARY KEY(`id`),
`last_modification` DATETIME, INDEX (`last_modification`),
`data` TEXT
) ENGINE=InnoDB CHARACTER SET `utf8`;"
Chciałbym prosić o komentarze:
- czy dobrze jeśli id jest jednoczesnie kluczem sesji a typ pola id to VARCHAR? Ponoć CHAR jest szybsze. To prawda?
- czy index na polu last_modification coś mi da?
- pole data trzymać będzie zserializowane dane sesji. Czy dobrze dać pole typu text? Moze są jakieś szybsze typy?
- W jednej konfiguracji mySQL'a widziałem opcję ustawienia tabeli na MEMORY. Dokładnie nie pamiętam ale chyba to oznaczało, że tabela będzie przechowywana w RAM-ie. Czy to prawda? Mogę ustawić tylko tą tabelę żeby działała szybciej?
- Mam też inne tabele które są stosunkowo małe a wymagają częstego odczytu (zapisu tylko raz na jakiś czas np. settingsy). Dane w nich są jednak ważniejsze. Czy można zrobić tak aby tabela siedziała w ramie i była szybko odczytywana a update oznaczałby zapis na dysku ?