![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 7.11.2005 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Mam pewien problem z poniższym zapytaniem SELECT, które wykonuje mi się około 2 sekund. Aktualnie tabela data ma około 3 miliony rekordów natomiast tabela website ma jedynie 10. Aktualnie co udało mi się zrobić to dodałem indeksy w tabeli, ale wykonywanie zapytania się nie skróciło (explain pokazuje, że są używane indeksy, indeksy nałożyłem na tabelę data, dla kolumn stamp i companyId. W przyszłości baza będzie miała jeszcze więcej rekordów oraz klientów którzy będą korzystać ze strony dlatego tak ważne jest zoptymalizowanie tego zapytania.
Problem może leżeć w źle nadanych indeksach ? Z góry dzięki za pomoc! |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 421 Pomógł: 310 Dołączył: 18.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
Masz źle napisane zapytanie.
http://forum.php.pl/index.php?showtopic=22...p;#entry1074645 pkt 4. EDIT: Poza tym przy takiej ilości rekordów czas na zmianę DBMS. Np. na całkiej przyjemnego, a w tej samej cenie postgreSQL-a. Ten post edytował mmmmmmm 24.11.2013, 18:41:46 |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 7.11.2005 Ostrzeżenie: (0%) ![]() ![]() |
Dzieki mmmmmmm za odpowiedz.
Dodalem do zapytania GROUP BY companyId. Utworzylem indeks na data(companyId, positive, negative), kiedy uzyje zapytania z explain dostaje
a zapytanie teraz wyglada tak:
Wykonanie takiego zapytania zajmuje okolo 3 sek. Jest jakas mozliwosc optymalizacji bez koniecznosci zmiany DBMS ? Dzieki |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 421 Pomógł: 310 Dołączył: 18.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
Musisz używać LIKE?
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 7.11.2005 Ostrzeżenie: (0%) ![]() ![]() |
Właśnie zauważyłem, że zapytanie z LIKE wykonuje się bardzo długo. Zamieniłem to na stamp >= '2013-11-27' i wszystko się wyjaśniło
![]() |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 120 Pomógł: 0 Dołączył: 6.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
Ja dla dużych baz używam wyszukiania pełnotekstowego, możesz sobie też poczytać o SPHINX-ie.
-------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 26.06.2025 - 14:15 |