![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 25.04.2010 Ostrzeżenie: (0%) ![]() ![]() |
Potrzebuję zaprojektować dużą bazę (być może nawet kilka set milionów rekordów)
Baza danych będzie zawierać kolory (R,G,B - do 255 czyli wystarczy TINYINT unsigned) , następne będzie 3 ciągi znaków od 000 do 255255255 (w tym wypadku zostaje mi jedynie int ? wykorzystane 28 z 32 bitów - 4 bity zmarnowane na każdy rekord) jeden oznaczający obecne kolory i 2 potrzebne do wyszukania z których zostały stworzone (to już raczej nie istotne tak musi być (IMG:style_emoticons/default/tongue.gif) ). Czyli sama tabela wygląda tak: R TINYINT unsigned G TINYINT unsigned B TINYINT unsigned Znak INT unsigned Zak1 INT unsigned Znak2 INT unsigned Program będzie pobierał 2 wartości R,G,B 2 różnych rekordów mieszał je wg. wzoru oraz zapisywał R,G,B, Znak tego co wyszło oraz Znak1 i Znak2 aby można było znaleźć z jakich zrobił. Z racji tego że będzie potrzeba dużo miejsca na bazę zastanawiam się czy nie rozdzielić znaki: zamiast Znak1 - R1,G1,B1 zamiast Znak2 - R2,G2,B2 wtedy oszczędzamy po 6 bajtów na każdy rekord ale będzie trzeba zapisywać więcej liczb (chyba że to że te liczby będą mniejsze to też +) Czy potrzebuję jeszcze pola które będzie numerował rekordy czy można w jakiś sposób wyciągnąć od 5 do 10 rekordu? Oraz czytałem trochę o indexowaniu wyszukiwać będę tylko po nr. rekordu więc chyba tylko w tym miejscu muszę dodać index? Ewentualnie inne pomysły jak można by było zbudować taką tabelę aby jak najbardziej zaoszczędzić miejsce jednocześnie nie tracić na szybkości działania (oczywiście i na jednym i na drugim mi zależy (IMG:style_emoticons/default/tongue.gif) ) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 14:23 |