Mam sobie baze z roznymi tabelami - np. lista typow telefonow (np. nokia z symbianem S60/S80, nokia S40 series) i lista gier...
Jest taka, w ktorej trzymam informacje, ktora gra pasuje do ktorego telefonu. W zwiazku z tym, ze gier (i jeszcze logosow, dzwonkow itp) jest sporo, a kazda pasuje do kilku telefonow, tabela sie niezle mi rozrosla - 10 mega danych i 20 mega indeksow...
struktura tabeli (1,1 miliona rekordów):
message mediumint, //max 3 miliony
type smallint, //max 400
cat smallint, //max 270
PRIMARY KEY (message,type),
KEY cat (cat),
KEY type (type)
typ: MyISAM
message - id gry / logosa itp
type - id grupy telefonow
cat - kategoria w grupie telefonow (np. gry akcji, zrecznosciowe itp)
moje pytanie - czy dobrze zaprojektowalem tabele? Nie będzie ona często aktualizowana (raz na miesiąc), więc szybkość insertów / update nie ma znaczenia. Najważniejsza jest szybkość odczytu, następnie rozmiar
jak wykorzystuje tą tabele: zapytania beda jednego z dwóch rodzajów:
SELECT message FROM tabela WHERE type = 123 LIMIT 10,10
SELECT message FROM tabela WHERE (type = 123) AND (cat = 456) LIMIT 10,10
moje pytania:
- jaki najlepiej użyć do tego celu mechanizm składowania danych?
- czy dobrze założyłem indeksy? może jakieś są zbędne, lub czegoś brakuje?