![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 764 Pomógł: 3 Dołączył: 30.04.2003 Ostrzeżenie: (0%) ![]() ![]() |
Witam serdecznie,
Mam następującą strukturę bazy danych (tutaj wersja dla PostgreSQL).
Cóż o tej strukturze tabel można powiedzieć: tabela użytkownicy, tabela wiadomości ->> połączone za pomocą tabeli łączące (relacja wiele do wielu). Moje pytania: 1) jak wygląda wydajność przy wyszukiwaniu danych przy takim układzie tabel 2) mam dwa takie zapytania (chcę pobrać listę wszystkich użytkowników którzy napisali wszystkie wiadomości – oczywiście napisane przez nich). a)
(IMG:http://forum.php.pl/style_emoticons/default/cool.gif)
Jaka jest różnica pomiędzy tymi zapytaniami (styl, „profesjonalizm zapisu”, szybkość wykonywania)(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) PostgreSQL poleceniem EXPLAIN wyrzucił coś takiego: Zapytanie 1) Kod Hash Join (cost=5.31..8.10 rows=20 width=171) Hash Cond: ("outer".uzytkownik_id = "inner".uzytkownik_id) -> Hash Join (cost=3.42..5.75 rows=53 width=118) Hash Cond: ("outer".wiadomosc_id = "inner".wiadomosc_id) -> Seq Scan on wiadomosci w (cost=0.00..1.53 rows=53 width=118) -> Hash (cost=2.94..2.94 rows=194 width=8) -> Seq Scan on uzytkownicy_wiadomosci u_w (cost=0.00..2.94 rows =194 width=8) -> Hash (cost=1.71..1.71 rows=71 width=61) -> Seq Scan on uzytkownicy u (cost=0.00..1.71 rows=71 width=61) (9 rows) Zapytanie 2) Kod Hash Join (cost=5.31..8.10 rows=20 width=158)
Hash Cond: ("outer".uzytkownik_id = "inner".uzytkownik_id) -> Hash Join (cost=3.42..5.75 rows=53 width=118) Hash Cond: ("outer".wiadomosc_id = "inner".wiadomosc_id) -> Seq Scan on wiadomosci (cost=0.00..1.53 rows=53 width=118) -> Hash (cost=2.94..2.94 rows=194 width=8) -> Seq Scan on uzytkownicy_wiadomosci (cost=0.00..2.94 rows=194 width=8) -> Hash (cost=1.71..1.71 rows=71 width=48) -> Seq Scan on uzytkownicy (cost=0.00..1.71 rows=71 width=48) (9 rows) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 09:04 |