PHP/MySQL | Оптимальный вариант на изменение записей таблицы
согласен. но иногда такой вот херней так заморочишься, что на рельно путные моменты внимания не обращаешь)))
достаточно будет не делать так
UPDATE `table` SET `p1` = 'blabla' WHERE `id` = '1';
UPDATE `table` SET `p2` = 'blabla' WHERE `id` = '1';
UPDATE `table` SET `p3` = 'blabla' WHERE `id` = '1';
UPDATE `table` SET `p4` = 'blabla' WHERE `id` = '1';
UPDATE `table` SET `p5` = 'blabla' WHERE `id` = '1';
UPDATE `table` SET `p6` = 'blabla' WHERE `id` = '1';
UPDATE `table` SET `p7` = 'blabla' WHERE `id` = '1';
хочется ноги выдернуть
UPDATE `table` SET `p1` = 'blabla' WHERE `id` = '1';
UPDATE `table` SET `p2` = 'blabla' WHERE `id` = '1';
UPDATE `table` SET `p3` = 'blabla' WHERE `id` = '1';
UPDATE `table` SET `p4` = 'blabla' WHERE `id` = '1';
UPDATE `table` SET `p5` = 'blabla' WHERE `id` = '1';
UPDATE `table` SET `p6` = 'blabla' WHERE `id` = '1';
UPDATE `table` SET `p7` = 'blabla' WHERE `id` = '1';
хочется ноги выдернуть
стоит пересмотреть структуру таблиц в целом
Автор, больше конкретики. Показывай структуру бд и что ты хочешь изменить, подскажу как сделать оптимальнее.
NLMan (13.02.2015 в 03:06)
Исполнить 10 отдельных запросов update в одну таблицу или если есть возможность объединить их в один на изменение 10 записей в одной таблице?
Подозреваю что по нагрузке это равноценно, но т.к. я нуб нубом то возможно ошибаюсь и все же 1 "оптимизированный" запрос даст 1 процесс а не 10? Панимать меня? :D
Исполнить 10 отдельных запросов update в одну таблицу или если есть возможность объединить их в один на изменение 10 записей в одной таблице?
Подозреваю что по нагрузке это равноценно, но т.к. я нуб нубом то возможно ошибаюсь и все же 1 "оптимизированный" запрос даст 1 процесс а не 10? Панимать меня? :D
лучше один сверхсложный запрос чем несколько простеньких
Mobiaaa (13.02.2015 в 07:22)
достаточно будет не делать так
UPDATE `table` SET `p1` = 'blabla' WHERE `id` = '1';
UPDATE `table` SET `p2` = 'blabla' WHERE `id` = '1';
UPDATE `table` SET `p3` = 'blabla' WHERE `id` = '1';
UPDATE `table` SET `p4` = 'blabla' WHERE `id` = '1';
UPDATE `table` SET `p5` = 'blabla' WHERE `id` = '1';
UPDATE `table` SET `p6` = 'blabla' WHERE `id` = '1';
UPDATE `table` SET `p7` = 'blabla' WHERE `id` = '1';
хочется ноги выдернуть
достаточно будет не делать так
UPDATE `table` SET `p1` = 'blabla' WHERE `id` = '1';
UPDATE `table` SET `p2` = 'blabla' WHERE `id` = '1';
UPDATE `table` SET `p3` = 'blabla' WHERE `id` = '1';
UPDATE `table` SET `p4` = 'blabla' WHERE `id` = '1';
UPDATE `table` SET `p5` = 'blabla' WHERE `id` = '1';
UPDATE `table` SET `p6` = 'blabla' WHERE `id` = '1';
UPDATE `table` SET `p7` = 'blabla' WHERE `id` = '1';
хочется ноги выдернуть
Вот и я про это )))
Мне кажется, один раз вызвать функцию ....query() будет лучше чем 10 раз )
37861047 (13.02.2015 в 13:38)
Автор, больше конкретики. Показывай структуру бд и что ты хочешь изменить, подскажу как сделать оптимальнее.
Автор, больше конкретики. Показывай структуру бд и что ты хочешь изменить, подскажу как сделать оптимальнее.
Ну так уже не вспомню работы которые навеяли на ночную мысль но к примеру так..
имеем:
t1
-p1
-p2
t2
-p1
-p2
t1 отвечает за расчет онлайна, t2 отвечает за базу пользователей, p1 и p2 идентичного содержания, в чем соль обновлять 2 таблицы 2 запросами с идентичными данными если для выборки онлайна можно использовать c t2 эти же данные.
И такой вариант..
t1
-p1
-p3
t2
-p1
-p2
Имеем p1 в обеих таблицах одинакового содержания, по ним идет выборка но p3 и p2 различаются.
Эти две таблицы обновляют одновременно двумя запросами, почему не их объеденить..
t2
-p1
-p2
-p3
и обновлять уже одним запросом UPDATE t2 SET p2="..", SET p3=".." Where p1=".."
При 2 запросах я на сколько подозреваю создается 2 процесса к мускулу.
При 10000 обращениях следовательно получаем 20000 процессов и т.д.
Вот и вопрос покоя не дает, при одном запросе но с 2 полями на изменение таблицы будет 1 процесс или 2? Стоит ли создавать структуру бд таким образом что бы по возможности данные группировать и сокращая дальнейшие кол-во запросов к бд.
как то таг.. возможно них не поймете, я объяснитель еще тот
________
посл. ред. 13.02.2015 в 15:00; всего 3 раз(а); by NLMan
NLMan, отвечу одним словом - реляции.
Почитай информацию о foreign key.
Связуешь нужные тебе поля в таблицах и вопрос решен
Почитай информацию о foreign key.
Связуешь нужные тебе поля в таблицах и вопрос решен
37861047 (13.02.2015 в 15:13)
NLMan, отвечу одним словом - реляции.
Почитай информацию о foreign key.
Связуешь нужные тебе поля в таблицах и вопрос решен
NLMan, отвечу одним словом - реляции.
Почитай информацию о foreign key.
Связуешь нужные тебе поля в таблицах и вопрос решен
Т.е. если я правильно понял ты имеешь ввиду, что если создать взаимосвязь между таблицами с одинаковыми значениями, то сможем проводить над ними операцию одним запросом на апдейт или удаление? Т.е. при внешнем ключе создание структуры бд не так важно, если мы меняем значение в одной графе таблицы то значение меняется и в связанных потомках? Я верно понял смысл? Это не для моего нубского уровня, сложно разобраться сразу ;[
________
посл. ред. 13.02.2015 в 16:47; всего 2 раз(а); by 13021034