Wpis z mikrobloga

Polećcie mi dobrą lekturę o #sql.

Wstyd się przyznać, ale robię te internety od dobrych kilku lat, HTML/CSS/JS/PHP znam całkiem przyzwoicie ale o #sql nie wiem prawie nic. Ostatnimi czasy piszę sporo customowych pluginów dla #wordpress (hehe, programista wordpress) i czuję, że niektóre rzeczy, które robię za pomocą WordPressowego API (m.in. WP_Query) można zrobić o wiele wydajniej robiąc bezpośrednie zapytania przez $wpdb. Krótko mówiąc - przyszedł czas, żeby w końcu nauczyć się tego SQL, bo wstyd.

#programowanie #webdev
  • 12
@MojeTrzecieKonto: Użyłem chyba za dużego skrótu myślowego. Mówiąc, że nie wiem praktycznie nic miałem na myśli, że znam absolutne podstawy, wiem jak zbudowana jest baza, wiem jak zrobić proste selecty, inserty, jak używać PDO, ale chciałbym nauczyć się SQL porządnie, poczytać dobrą teorię, dowiedzieć się coś o wydajności, etc.
@rozdajozadarmo: Jeśli chodzi o wydajność, to każdy silnik ma swoje cuda, Panie. Trzeba się pod konkretny uczyć. Polecam sprawdzać execution plan.
Co do zasady SQL jest językiem 4. poziomu, zatem nie powinien się "dać optymalizować" (taki skrót myślowy), ale w praktyce implementacje są różne. ;-)
które robię za pomocą WordPressowego API (m.in. WPQuery) można zrobić o wiele wydajniej robiąc bezpośrednie zapytania przez $wpdb.


@rozdajozadarmo: nie, nie rob tego. Jesli robisz w wordpressie i opierasz sie na ich API to robisz bardzo dobrze.

jak zaczniesz pisac wlasne zapytania do bazy bezposrednio w pluginie, zaraz zobaczysz ze bedziesz mial problemy. Pomijam juz fakt, ze pewnie nie bedziesz umial napisac bezpiecznych zapytan, ale rownie wazne jest to,
@konradk: jak ktoś chce tworzyć strony dla klientów czy jakieś blogi to OK, ale jeśli OP chce potrafić tworzyć poważniejsze rzeczy to niestety się z tobą nie zgodzę.
Przykład: Mam stronę na WP, około 3 milionów rekordów w bazie, na stronie głównej wpisy z 36 różnych kategorii (osobno) plus wyświetlane w różnych miejscach kombinacje wpisów według koategorii i taksonomii plus wyszukiwarka według taksonomii. Nowe posty średnio co 2 minuty.
Na standardowych
@mmbator: przy tak wielkiej bazie to może i ok. I jeśli rozwiązanie pod jedną stronę to też ok (sam opanujesz konflikty z innymi wtyczkami). Można też dla tych zapytań z głównej użyć Transient API.
nie, nie rob tego. Jesli robisz w wordpressie i opierasz sie na ich API to robisz bardzo dobrze.

jak zaczniesz pisac wlasne zapytania do bazy bezposrednio w pluginie, zaraz zobaczysz ze bedziesz mial problemy. Pomijam juz fakt, ze pewnie nie bedziesz umial napisac bezpiecznych zapytan, ale rownie wazne jest to, ze jak wykorzystujesz api od wordpressa, to inne pluginy moga filtrowac to co robisz, i dostosowywac do wlasnych potrzeb.


@konradk:

Zacznę