• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

MySQL - optymalizacja zapytania iloczynu kartezjańskiego

VPS Starter Arubacloud
0 głosów
1,533 wizyt
pytanie zadane 24 marca 2017 w SQL, bazy danych przez hoktaur Pasjonat (22,250 p.)
Witam

Mamy tabele:

id | name

1 | jeden

2 | dwa

itd

Czy jest możliwy bardziej optymalny sposób zapisu iloczynu kartezjańskiego tej samej tabeli:

SELECT * FROM tabela, tabela, tabela

jeszcze to jest wygląda w miarę OK ale problem się zaczyna gdy tabela jest generowana z innych tabel np.:

SELECT * FROM

(SELECT * FROM tabela t LEFT JOIN tabeladodatkowa td ON t.id = td.id),

(SELECT * FROM tabela t LEFT JOIN tabeladodatkowa td ON t.id = td.id),

(SELECT * FROM tabela t LEFT JOIN tabeladodatkowa td ON t.id = td.id)

już nie wygląda to OK, chociaż wydaje mi się ze te zapytania o generowaną tabele są cache'owane to i tak zmiana w jednym zapytaniu pociąga zmianę w innych liniach.

Pytanie jest proste czy jest możliwość to zoptymalizować?

1 odpowiedź

0 głosów
odpowiedź 24 marca 2017 przez jeremus Maniak (59,720 p.)

Nie jestem pewien czy mysql łyka sładnię z  with ( ćwiczone w mssql )

wygląda to tak :

WITH tab as (SELECT * FROM  tabela t left join tabeladodatkowa td on t.id=td.id)
select * from tab,tab

 

komentarz 24 marca 2017 przez hoktaur Pasjonat (22,250 p.)

Tu napisali że niestety nie jak cytuje

MySQL doesn't support the WITH clause (CTE in SQL Server parlance; Subquery Factoring in Oracle), so you are left with using:

  • TEMPORARY tables
  • DERIVED tables
  • inline views (effectively what the WITH clause represents - they are interchangeable)

Podobne pytania

0 głosów
2 odpowiedzi 1,228 wizyt
0 głosów
1 odpowiedź 395 wizyt
pytanie zadane 25 maja 2017 w SQL, bazy danych przez Q_Nick Mądrala (5,010 p.)
0 głosów
1 odpowiedź 263 wizyt
pytanie zadane 9 kwietnia 2020 w SQL, bazy danych przez wsnofi Bywalec (2,680 p.)

93,024 zapytań

141,986 odpowiedzi

321,290 komentarzy

62,371 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...