bluesman
27. 02. 2009., 00:17
Čitam neki PDF "MySQL Performance Cookbook" koji je izdao O'Reilly, pa sam našao neke stvari koje mi deluju čudno.
Na primer, dao je naslov sekciji "Manual joins" i kaže ovako:
Umesto:
SELECT * FROM A,B WHERE A.BID=B.ID AND A.C=5
Brže je sa 2 querija:
SELECT * FROM A WHERE A.C=5
SELECT * FROM B WHERE B.ID IN (<List of retrieved values>)
I objašnjava: Can be faster as each row from B is retrieved once, and because IN list will be sorted for optimal retrieval.
Zar ne bi trebao mysql da optimizuje prvi query i da ga izvrši u najmanju ruku istom brzinom kao ova 2 querija?
Samo da napomenem da je autor Peter Zaitsev koji je navodno radio 4,5 godine u MySQL AB kao manager u high performance group i performance related support.
Na primer, dao je naslov sekciji "Manual joins" i kaže ovako:
Umesto:
SELECT * FROM A,B WHERE A.BID=B.ID AND A.C=5
Brže je sa 2 querija:
SELECT * FROM A WHERE A.C=5
SELECT * FROM B WHERE B.ID IN (<List of retrieved values>)
I objašnjava: Can be faster as each row from B is retrieved once, and because IN list will be sorted for optimal retrieval.
Zar ne bi trebao mysql da optimizuje prvi query i da ga izvrši u najmanju ruku istom brzinom kao ova 2 querija?
Samo da napomenem da je autor Peter Zaitsev koji je navodno radio 4,5 godine u MySQL AB kao manager u high performance group i performance related support.