SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 05.12.2011 23:14:40

kuzroman
Завсегдатай
Зарегистрирован: 28.04.2010
Сообщений: 37

оптимизация запроса

Подскажите как можно ускорить работу такого скрипта?

$upd = "SELECT `img` FROM `films` WHERE `img` NOT LIKE '%site.com%' ";
$result = mysql_query($upd) or  die("Ошибка: ".mysql_error());

while( $img = mysql_fetch_assoc($result)){
    $new_cont = 'http://site.com'.$img['img'];
    $sqlIns = "UPDATE `films` SET `img`='$new_cont' WHERE `img`='$img[img]' ";
    $result2 = mysql_query($sqlIns) or  die("Ошибка: ".mysql_error());
}


В таблице 10000 записей, обновляет долго, есть какой то аналог?


сть ли возможность конкатенировать запись в sql?
что то вроде
UPDATE `films` SET `img`= CONCAT('http://site.com', `img` ) WHERE `img` NOT LIKE '%obnovi.com%' ";

в идеале хотелось бы написать запрос на чистом mysql без php

Отредактированно kuzroman (05.12.2011 23:15:27)

Неактивен

 

#2 06.12.2011 16:52:13

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: оптимизация запроса

Если добавить индекс на поле, img, то update должен ускориться.

А вот запросу с like вряд ли поможет, потому как MySQL также использует индексы для LIKE операций, толь если аргумент LIKE является строковой константой и при этом не начинается с символа шаблона (% или _).

Функция concat имеется smile.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#3 06.12.2011 17:04:54

kuzroman
Завсегдатай
Зарегистрирован: 28.04.2010
Сообщений: 37

Re: оптимизация запроса

Да спасибо разобрался.

UPDATE `films`
SET `img`= CONCAT('http://site.com', `img` )
WHERE `img` NOT LIKE '%obnovi.com%' ";

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson