Wpis z mikrobloga

#wydajnosc #mysql #programowanie #serwery

Potrzebuję wykonać aplikację, która będzie operowała na bazie 1 MLN rekordów, każdy rekord ~100 bajtów ,więc cała baza około 100 MB. Czy przy takiej ilości muszę bawić się w jakąś optymalizację, vpsy, podział na mniejsze tabele? Ilość rekordów nie będzie rosła, do tego będą utworzone indeksy. Operacje wykonywane na bazie to selecty z where, grupowaniami, funkcje sumujące itd (np. sum(wartosc) - sumowanie z miliona rekordów). Wymaganie w czasie przetwarzania danych to max 1-2 sekundy / zapytanie, tak aby dało sie w miarę sensownie korzystać. Nie będzie złączeń tabel, podzapytań etc.

Pytanie: czy to będzie działać na zwykłym hostingu współdzielonym? Innymi słowy - czy 1 mln rekordów to dużo dla mysql?

Ale namieszałem :D
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@egocentryk: mało, w trakcie używania zapewne max 5-10 selectów / minuta. Chodzi o to aby jeden select wykonywał się 1-2 sekundy a nie np. 20 sekund. Nie wiem czy np. sum(wartosc) na milionie rekordów albo distinct ID_CZEGOSTAM , albo group by GRUPA (gdzie grupy to 10 000 różnych ID) wykona się szybko.
  • Odpowiedz
@krupek: nie wiem, jak szybko się wykona, ale indeksy i odpowiednio skonstruowane zapytania 'WHERE id = ' / WHERE id IN ()' potrafią zdziałać cuda. Strukturę bazy mógłbyś zarzucić i przykładowe zapytanie. DISTINCT jest szybkie, tego nie musisz się obawiać, dodatkowo warto pobierać tylko takie dane, które potrzebujesz, czyli zamiast SELECT * robisz SELECT id,title,etc.
  • Odpowiedz