Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Pyt 1) Grupowanie słów dla kolumny fulltext index. Pyt. 2) Pobranie 1000 obiektów, ale tylko dla 20 więcej danych
teom
post 8.01.2018, 10:50:07
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 24.10.2006

Ostrzeżenie: (0%)
-----


Pyt. 1) Mam na kolumnie nałożony indeks " FULLTEXT INDEX ". Czy da się stworzyć takie zapytanie, które grupowałoby słowa i wyświetlała użytkownikom informację, ile jest poszczególnych słów.
Pyt. 2) W jednym zapytaniu chcę pobrać współrzędne 1000 obiektów, ale tylko dla pierwszych 20 chcę pobrać dodatkowe dane (nazwa, adres). Jak powinno wyglądać najbardziej optymalne zapytanie.


Nikt nie daje odpowiedzi. Zastanawiam się, czy czasem nie są to pytania zbyt banalne.

Może trochę więcej podam informacji

Ad 1) Mam założony FULLTEXT INDEX na kolumnie JABŁKA, który zawiera nazwy odmian jabłek od danego sadownika oddzielone przecinkiem np. "Reneta, Golden". Tych sadowników (rekordów) w bazie mam 1000. Czy w jednym zapytaniu mogę zliczyć ile jest odmian jabłek i w jakiej ilości (np. Reneta 5, Golden 7) korzystając z tego, że mam założony FULLTEXT INDEX, czy jednak muszę to obliczyć korzystając z rozwiązania, że w każdej pętli na każdym obiekcie robię explode(",", 'Reneta, Golden') i sumuje odmiany. Rozumiem, że w tym przypadku nie mogę korzystać z "GROUP BY".

Ad 2) W zapytaniu zastanawiam się nad odpowiednim użyciem SELECTA. Skoro tylko dla 20 obiektów chcę pobrać pełne dane adresowe, a dla 980 tylko współrzędne gps, to czy konieczne jest w zapytaniu w SELECIE wymienianie wszystkiego np. " SELECT gps, nazwa, miasto, ulica, kod_pocztowy, tel". Jak wy to robicie, bo wszędzie się trąbi, że w SELECIE powinno być tylko to, co potrzebujemy.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
gitbejbe
post 9.01.2018, 13:36:18
Post #2





Grupa: Zarejestrowani
Postów: 515
Pomógł: 63
Dołączył: 27.08.2012

Ostrzeżenie: (0%)
-----


1) jak to niemożliwe ? Najlepszym zapytaniem dla Ciebie będzie DROP TABLE, bo to rozwiązanie to zwyczajne go***. Korzystasz z bazy relacyjnej jaką jest mysql, wiec dlaczego rzucasz sobie kłody pod nogi z jakimiś archaicznymi rozwiązaniami ? Poczytaj o relacji jeden do wielu i operacjami typu join, implementacja zajmie kilka chwil. Nie ma dla ciebie innego dobrego rozwiązania, pozostają same tragiczne, o których nawet nie chce myśleć. Poświęć tą godzinę na wyedukowanie, w necie masz pełno przykładów, na pewno sobie poradzisz i zobaczysz jaki śmietnik miałeś wcześniej. Co do pytania czy jest to w ogóle możliwe, to jakiś magik pewnie by coś wyczarował, ale po co skoro są od tego relacje.

2) Dobrą praktyką jest aby pobierać tylko to co Ciebie interesuje, ale bez przesady. Zrób sobie porównanie - napisz to samo zapytanie 2 razy, z tym że raz niech pobierze te kilka kolumn , a raz niech pobierze wszystkie kolumny. Powtórz kilkukrotnie i wylicz średnią dla obu tych zapytań. Wg mnie różnica nie będzie warta dalszego kombinowania, a na pewno wydajnościowo będzie waliło na łeb zapytanie które próbujesz wymyślić w pkt 1.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 16.05.2024 - 22:25