1 (edited by neturiuVardo 2010-08-24 13:27:25)

Topic: Užklausų kiekių mažinimas

Dabar darau

INSERT INTO table(col, col1, ...) VALUES(..., ..., ...)
ON DUPLICATE KEY UPDATE
... = ..., ... = ..., ... = ...;
(...)
INSERT INTO table(col, col1, ...) VALUES(..., ..., ...)
ON DUPLICATE KEY UPDATE
... = ..., ... = ..., ... = ...;

Tačiau taip darant gaunas apie 12 užklausų į mysql, ar įmanoma kažkas tokio?

INSERT INTO(col, col1, ...) VALUES(..., ..., ...) 
ON DUPLICATE KEY UPDATE
... = ..., ... = ..., ... = ..., 
(..., ..., ...) ON DUPLICATE KEY UPDATE
... = ..., ... = ..., ... = ...;

Na, turbūt suprantat.

Re: Užklausų kiekių mažinimas

Na gal vistik sprendimas būtų: http://www.php.net/manual/en/mysqli.multi-query.php

MongoDB Certified Developer
MongoDB Certified DBA
Zend Certified Engineer

Re: Užklausų kiekių mažinimas

neturiuVardo: tau kiekvienai įterpiamai aibei reikalingas atskiri duomenys tam atvejui, kai dublikuojasi raktai?

Sintaksė yra tokia: http://dev.mysql.com/doc/refman/5.1/en/ … icate.html
Gali per vieną INSERT'ą įterpti daug duomenų, bet ką daryti esant dublikatams tai galima nurodyti tik vieną kartą (bendras vistiems duomenims).

Re: Užklausų kiekių mažinimas

Zygis, ar tai pagreitintų veikimą? Kaip suprantu, tai vistiek darytų tiek pat užklausų.
Minde, taip, jei jau įrašas egzistuoja, kai kuriuos jo laukus reikia atnaujinti.

Re: Užklausų kiekių mažinimas

neturiuVardo wrote:

Minde, taip, jei jau įrašas egzistuoja, kai kuriuos jo laukus reikia atnaujinti.

Bet ar tas atnaujinimas yra kas karta unikalus ar jį galima aprašyti visiem vienodą? Nes jeigu galima padaryti bendrą tai tiesiog gali naudoti:

INSERT INTO ... VALUES(...,...,...),(...,...,...),(...,...,...),(...,...,...),(...,...,...),(...,...,...),...
ON DUPLICATE KEY UPDATE ...

Re: Užklausų kiekių mažinimas

Tai va, tame ir reikalas, kad jie visi skirtingi. šis būdas netinka šiuo atveju man. :(

Re: Užklausų kiekių mažinimas

Na multi query atveju sutaupytum tik laiką, kaip PHP perdavinėja užklausą MySql'ui. Tas būtų labai aktualu jei duomenų bazė būtų kitame serveryje :)

MongoDB Certified Developer
MongoDB Certified DBA
Zend Certified Engineer