- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Как удалить плохие SEO-ссылки и очистить ссылочную массу сайта
Применяем отклонение ссылок
Сервис Rookee
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Есть функция, которая делает пару тысяч апдейтов в минуту, подскажите как оптимизировать на меньшее количество апдейтов:
Есть функция, которая делает пару тысяч апдейтов в минуту, подскажите как оптимизировать на меньшее количество апдейтов:
если возможно - попробуйте формулу перерасчета параметра реализовать средствами mysql, тогда потребуется только 1 запрос. или менять логику. по тому что есть "в общем" задачу не оптимизировать, нужно смотреть более конкретно
Не знал, что тема так разрастётся.
Первым же ответом, вопрос ТС был решён на все 100 %!
Но появился, великий гуру PHP, AndreM, который оказался недоволен тем, что его опередили с решением, которое оказалось офигительно простым и по месту! (как говорится всё гениальное - просто!). Ну ладно, AndreM, захотел усложнить решение и сделать более универсальным... При этом, Коля Дубр, показал направление в котором нужно копать. Но где оно, решение, AndreM? Я думаю, все уже заждались! Ну по крайней мере, я точно!
Думаю, всего-то недельку-другую программирования и что-то похожее на универсальное и устойчивое к нагрузкам решение могло бы получиться.
----
Есть функция, которая делает пару тысяч апдейтов в минуту, подскажите как оптимизировать на меньшее количество апдейтов:
1. Возможно до UPDATE лучше проверить, а будет ли $newparam отличаться от старого значения. Бывают ситуации, когда по статистике только 10-20% операций требуют реальных изменений в базе. Может быть у вас тот случай. Тогда запросов на UPDATE потребуется на 80-90% меньше.
2. Может быть следует повнимательней изучить структуру таблицы. Например, сделать все поля фиксированного размера. Ну типа VARCHAR заменить на CHAR. Чтобы таблица не была динамической. В общем, при больших размерах таблицы выигрыш в скорости может быть ощутимым. Опять же всяко бывает.
3. Возможно у вас на поле param стоит INDEX, тогда UPDATE будет замедлен. Если в момент UPDATE этого не нужно, то DROP INDEX для поля param
4. Да и несколько тыщ запросов в минуту, подразумевает, что на один запрос менее 30мс - по мне, так это не много. Всё зависит от того, где это используется. Если для частного решения редко запускаемой задачи, то одно дело. Если это крутится постоянку на работающем сайте, то другой случай, требующий более тщательной проработки.
Я например, для анализа скорости отработки кода и выявления узких участков юзаю class Profiler: [ATTACH]21804[/ATTACH]
у меня была мысль:
после выбора этих данных (брать всю строку, которая удовлетворяет условию, из бд) - полностью удалять эти строки, затем перерасчитывать параметр и вставлять строки через инсерт (группой).
как такой вариант?
у меня была мысль:
после выбора этих данных (брать всю строку, которая удовлетворяет условию, из бд) - полностью удалять эти строки, затем перерасчитывать параметр и вставлять строки через инсерт (группой).
как такой вариант?
да Вы расскажите ситуацию подробнее, что за параметр, как он рассчитывается, что в таблице. А то кто его знает - может там у вас id автоинкрементный, а Вы delete insert задумали делать. В общем и целом - абстрактно уменьшить количество апдейтов из этого кода нельзя (вернее я не вижу возможности), но скорее всего можно оптимизировать все решение в целом, для этого нужно знать немного больше о задаче
Возможно до UPDATE лучше проверить, а будет ли $newparam отличаться от старого значения. Бывают ситуации, когда по статистике только 10-20% операций требуют реальных изменений в базе. Может быть у вас тот случай. Тогда запросов на UPDATE потребуется на 80-90% меньше.
С этим полностью согласен - все данные (все строки) редко когда обновляются, потому проверка на изменение может существенно снизить кол-во запросов. К тому же значение поля "параметр" все равно уже вытаскивается.
2. Может быть следует повнимательней изучить структуру таблицы. Например, сделать все поля фиксированного размера. Ну типа VARCHAR заменить на CHAR. Чтобы таблица не была динамической. В общем, при больших размерах таблицы выигрыш в скорости может быть ощутимым. Опять же всяко бывает.
DyaDya
А Вы не подскажите, даст ли это результат при количестве, примерно, 100 строк по 6-8 полей в БД ?
п.с. В ПХП пока слабоват. Но на практике с подобной задачей уже сталкивался (обновление прайсов, а точнее цен и наличия в БД).
А Вы не подскажите, даст ли это результат при количестве, примерно, 100 строк по 6-8 полей в БД ?
Если ответить коротко, то даст.) Только в вашем случае вы не заметите разницы, скорее всего. Поэтому, если это не создаёт проблем на вашем сайте, то не стоит пока зацикливаться.
DyaDya
Я понимаю что разницу заметить будет трудно, но все же стало интересно, потому как хочется научиться (привыкнуть) изначально правильно писать как сам код, так и его структуру (в том числе структуру таблиц).
По сути стало интересно насколько большими должны быть объемы таблицы для видимости разницы в скорости работы в том и ином случае.
А в целом пока не часто попадались статьи (заметки, советы) по оптимизации структуры БД, потому и вопросы иногда такие глупые возникают :)
Спасибо за ответ.
В мануале очень много написано про оптимизацию. Например, http://www.csu.ac.ru/~srg/mysql_doc/manual.ru_MySQL_Optimisation.html
изучайте на здоровье.
чуток инфы, но полезной здесь: http://mostinfo.net/article/12/92.htm