Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> UPDATE на основании SELECT или сразу UPDATE?
Raymond  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 40
Пользователь №: 43562
На форуме: 9 месяцев, 17 дней
Карма:




Что будет производительнее и лучше:

SELECT id FROM users WHERE login = 'vasya' (вернет, например, число 5)
а потом
UPDATE users SET login = 'Darth Vader' where id = 5

Или

UPDATE users SET login = 'Darth Vader' WHERE login = 'vasya'

Объясните пожалуйста, я на перепутье.

Это сообщение отредактировал Raymond - 21.05.2017 - 20:02
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
AllesKlar  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 3708
Пользователь №: 38635
На форуме: 3 года, 7 месяцев, 26 дней
Карма: 199




Raymond
Зависит от логики твоего приложения.

UPDATE users SET login = 'Darth Vader' WHERE login = 'vasya'
Перезапишет ВСЕМ юзерам с логином "vasya" новый логин.



UPDATE users SET login = 'Darth Vader' where id = 5
Перезапишет логин только одному юзеру.


--------------------
[продано копирайтерам]
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
inpost  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Помагите Здесь живу!!!
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 22932
Пользователь №: 20039
На форуме: 7 лет, 8 месяцев, 15 дней
Карма: 608




Raymond
С индексами знаком? Без них медленно, с ними - быстро.
Предположим, что ты стандартный программист и прописал для `id` PRIMARY INDEX. Primary по умолчанию UNIQUE, это значит, что при нахождении первой записи для замены поиск будет остановлен, ведь двух одинаковых значений не будет. В свою очередь `login` какой из индексов ты указал? Если INDEX, то добавь LIMIT 1, если UNIQUE, то limit не нужен. А вот если индекса нет на логине, то всё плохо.

Дальше, 1 запрос, конечно же, будет значительно быстрее чем 2. Логика!

В заключение, смотря как ты осуществляешь 2 запроса подряд. Эта операция у тебя на уровне MySQL, или ты результат возвращаешь в PHP скрипт, откуда вызываешь второй запрос? То это худшее решение.

И последнее, фантазировать какой из индексов шустрее (по ID или login) - не твой уровень, так что с этим не парься пока не попадёшь на проекты размера гугла wink.gif

И последнее прям последнее, индексы пойдут во вред, если данных в таблице очень мало.


--------------------
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
PMПисьмо на e-mail пользователюICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
waldicom  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 6298
Пользователь №: 5552
На форуме: 9 лет, 1 месяц, 15 дней
Карма: 165




Цитата (inpost @ 21.05.2017 - 17:41)
Primary по умолчанию UNIQUE, это значит, что при нахождении первой записи для замены поиск будет остановлен, ведь двух одинаковых значений не будет.

Raymond, если ты это прочитал, то немедленно забудь! Чувак явно не в курсе, как работают индексы в базах данных в частности и вообще в целом


--------------------
Свои мозги еще никто не отменял.
Телепатов нету.
PM
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Arh  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



146%
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 2390
Пользователь №: 27172
На форуме: 6 лет, 4 месяца, 20 дней
Карма: 76




waldicom
Поверить наслово?


--------------------
:)
PMСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
waldicom  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 6298
Пользователь №: 5552
На форуме: 9 лет, 1 месяц, 15 дней
Карма: 165




Цитата (Arh @ 22.05.2017 - 07:50)
waldicom
Поверить наслово?

Поверь, если ты тоже не знаешь, как работают индексы. Или, как сказал бы Valick: читай умные книги smile.gif


--------------------
Свои мозги еще никто не отменял.
Телепатов нету.
PM
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
twin  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Глухой нуб
******

Профиль
Группа: Администратор
Почтальон группы
Сообщений: 16220
Пользователь №: 6543
На форуме: 8 лет, 10 месяцев, 19 дней
Карма: 304

Трезвый :
6 лет, 7 месяцев, 29 дней


Цитата (inpost @ 21.05.2017 - 16:41)
Дальше, 1 запрос, конечно же, будет значительно быстрее чем 2. Логика!

Никакой логики в этом нет. Как минимум нужно уточнить, какие два запроса. Иногда бывает наоборот.


--------------------
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
PMСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
inpost  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Помагите Здесь живу!!!
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 22932
Пользователь №: 20039
На форуме: 7 лет, 8 месяцев, 15 дней
Карма: 608




twin
Я о равнозначных, что выше у ТС. Уточняю.


--------------------
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
PMПисьмо на e-mail пользователюICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Arh  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



146%
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 2390
Пользователь №: 27172
На форуме: 6 лет, 4 месяца, 20 дней
Карма: 76




waldicom
Расскажи вкратце)


--------------------
:)
PMСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса