Подобряване на mysql заявки

Pavkatar

Registered
Здравейте,
Има ли начин да се подобри начина по който вкарвам данни в базата данни. Защото в момента, за да вкарам 1 стойност в базата правя следните неща:
Код:
1. Със SELECT търся дали резултата съществува.
2. С num_rows проверявам колко намерени резутата има.
3. Ако няма тоест num_rows == 0 -> INSERT заявка
4. Ако има UPDATE заявка да вдигна стойнстта на 1 от полета с 1

И това го правя за всяка заявка. Като имате в предвид, че вкарвам 10-15 работи едновременно и ме притеснява малко бързодействието на скрипта.
 
Код:
/*
Проверка за съществуващ запис 
по - бърз е от count()
*/
$rez mysql_query("select pole from tablica where pole ='' limit 1") ;
if ($row = mysql_fetch_array($rez) && $row["pole"]) {
   //update
}else {
//insert
}
 
bgspace каза:
Код:
/*
Проверка за съществуващ запис 
по - бърз е от count()
*/
$rez mysql_query("select pole from tablica where pole ='' limit 1") ;
if ($row = mysql_fetch_array($rez) && $row["pole"]) {
   //update
}else {
//insert
}

Това не го знаех, ще се пробва, други идей?
 
http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html
Погледни това, мисля че е точно за твоя случай.
 
Rado каза:
http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html
Погледни това, мисля че е точно за твоя случай.
Не това не става. Това се прави като задаваш ключове на полетата, а аз немога да го направя в моята структура. Защото, то проверява за съвпадение на уникалните ключове.
 
Можеш да му окажеш кои полета да бъдат уникални. Прочети за unique indexes. Аз така ги правя и с INSERT INTO `tbl` .... ON DUPLICATE KEY UPDATE ...
 

Back
Горе