![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
Feldmarschall |
|
|||
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 1 Всего: 32 |
Слушай, если ты не можешь получить строку из БД, то тебе не оптимизацией надо заниматься, а учиться с БД работать.
http://www.intuit.ru/department/database/mysql/12/ - учебный курс. Освой хотя бы азы. Чтобы такие вопросы тебя не ставили в тупик. Это вопрос не про оптимизацию. Ещё раз, если ты не понял: Оптимизировать надо то, что тормозит. А не то, про что кто-то где-то сказал. |
|||
|
||||
Fortop |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 3 Всего: 42 |
А если отойти в сторону от функции PHP mysql_num_rows() и почитать что тебе возвращает SQL функция COUNT()? не хочешь попробовать?
Без понимания что такое профайлинг и для чего он - оптимизировать бесполезно. -------------------- Мир это Я. Живее всех живых. |
||||
|
|||||
m1kle |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 245 Регистрация: 2.5.2007 Где: Москва, Россия Репутация: нет Всего: нет |
Fortop, что такое профайлинг я кажется понял, но как его использовать нет. Пороюсь в интернете.
И ещё, там же про PHP код говорится. Про count тоже поищу в интернете. Это сообщение отредактировал(а) m1kle - 7.6.2008, 01:00 |
|||
|
||||
Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 3 Всего: 42 |
m1kle,
xdebug.org, плюс на Хабре были заметки про то, как проводить профайлинг. Собственно ничего сложного. Ставишь xdebug, настраиваешь его. Затем запускаешь скрипт на выполнение. Служебная информация пишется в указанную тобой директорию. Просмотреть ее можно через WinCacheGrind. Выхватываешь самые медленные куски кода и начинаешь разбирать уже их. Если это SQL запросы, то копируешь их и делаешь в MySQL EXPLAIN для каждого из запросов. -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
m1kle |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 245 Регистрация: 2.5.2007 Где: Москва, Россия Репутация: нет Всего: нет |
Разбираюсь, там не так то просто установить, на UNIX.
|
|||
|
||||
m1kle |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 245 Регистрация: 2.5.2007 Где: Москва, Россия Репутация: нет Всего: нет |
Xdebug очень сложно скомпилировать.
Какое приложение отвечает за команду phpize? А то у меня она пишет, что команда не найдена. Сорри за даблпостинг - не заметил. P.S.: Функцией count(*) я пользоваться научился. И ещё, я тут задумался о Xdebug'e, а нужен ли он вообще, время выполнения можно посмотреть и в HeidiSQL. Другое дело, как именно оптимизировать. Это сообщение отредактировал(а) m1kle - 9.6.2008, 17:55 |
|||
|
||||
Feldmarschall |
|
|||
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 1 Всего: 32 |
для первичного профайлинга достаточно функции microtime()
|
|||
|
||||
IZ@TOP |
|
|||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 4 Всего: 73 |
m1kle, если у тебя фря, идешь в порты (если PHP собран из портов)
Потом тебе предложат подключить сошку в конфиг как zend_extension. Подключаешь. Дальше настраиваешь конфиг по ману и радуешься жизни. А еще есть такая фича как EXPLAIN запросов в MySQL. Проверь все свои запросы, используют ли они индексы и т.п. Подробнее... А еще лучше, как кто-то тут сказал, попробовать для начала основы программирования и баз данных выучить. И, заодно, как пользоваться интернетом (в т.ч. http://google.com). P.S. Ребят, я плакал с этой темы) -------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
m1kle |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 245 Регистрация: 2.5.2007 Где: Москва, Россия Репутация: нет Всего: нет |
Feldmarschall, Вот в чём проблема я непонимаю, как оптимизировать, мне почему-то всегда кажется, что всё и так по максимальному оптимизировано.
IZ@TOP, cd /usr/ports/devel/php-xdebug/ - такой папки у меня нету.
Вот например код, ну что тут можно оптимизировать? |
|||
|
||||
IZ@TOP |
|
|||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 4 Всего: 73 |
Feldmarschall, +1.
m1kle, а я и не говорил что она у тебя должна быть. Я ведь не знаю какая у тебя система, просто для примера привел. А вот что оптимизировать в этом коде, это ты должен сам определить. Хотя бы запросы протестируй как я говорил:
Это сообщение отредактировал(а) IZ@TOP - 10.6.2008, 15:55 -------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
Feldmarschall |
|
|||
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 1 Всего: 32 |
IZ@TOP, тут апдейты в цикле. И не в цикле. И по одному, и пачками. И вся база перетряхивается.
Этот тот случай, когда эксплейн не поможет - здесь руки надо выпрямлять и мозги вправлять, а не отдельные запросы тестировать. Тут только моя рекомендация поможет, которую добрый модератор удалил. Потому что тишина должна быть в библиотеке. Добавлено через 3 минуты и 46 секунд меня другое радует:
Добавлено через 5 минут и 7 секунд m1kle, как часто выполняется этот скрипт? каков размер таблицы zavodi и других, перечисленных в этом скрипте? |
|||
|
||||
m1kle |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 245 Регистрация: 2.5.2007 Где: Москва, Россия Репутация: нет Всего: нет |
IZ@TOP, тут апдейты в цикле. И не в цикле. И по одному, и пачками. И вся база перетряхивается.
Так получается, это замысл работы скрипта. Про count(*) в такой маленькой БД count ничего не даст. Work 4 Кб Zavodi 12,4 Кб Users 295 Кб Скрипт выполняется раз в минуту. Как считает, можно что нибудь сдесь улучшить? |
|||
|
||||
Feldmarschall |
|
|||
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 1 Всего: 32 |
какие интересные таблицы. а где же остальные 50 мегабайт лежат? Вот об том и речь, что замысел и надо переделывать. Замысел. Заплатками тут не обойдешься. Не нужно раз в минуту ничего апдейтить. БД не для этого предназначена. все данные можно вычислить по надобности. пришел игрок через час - посчитал его параметры - и записал в базу. один раз за час. а не 60. Это азы. основы. И у тебя они не выполняются. И оптимизировать этот винегрет из апдейтов - бесполезно. |
|||
|
||||
Feldmarschall |
|
|||
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 1 Всего: 32 |
ну ХОТЯ БЫ сократить эту колбасу до трех запросов можно было догадаться? и сколько у тебя таких скриптов, которые раз в минуту выполняются? и сколько вообще запросов приходится на скрипт? |
|||
|
||||
m1kle |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 245 Регистрация: 2.5.2007 Где: Москва, Россия Репутация: нет Всего: нет |
50 мегабайт, в другой таблице, в которая не участвуете в предоставленным мною скрипту.
"Вот об том и речь, что замысел и надо переделывать. Замысел. Заплатками тут не обойдешься. Не нужно раз в минуту ничего апдейтить. БД не для этого предназначена. все данные можно вычислить по надобности. пришел игрок через час - посчитал его параметры - и записал в базу. один раз за час. а не 60. Это азы. основы. И у тебя они не выполняются. И оптимизировать этот винегрет из апдейтов - бесполезно." В онлайн играх есть такая штука, как работа, там нужно каждую минуту проверять, не закончил ли кто-то работать, это необходимо. "ну ХОТЯ БЫ сократить эту колбасу до трех запросов можно было догадаться?" Разве можно делать сразу несколько запросов к таблице одним Апдейтом? "и сколько у тебя таких скриптов, которые раз в минуту выполняются?" Есть ещё один, огромный, двести строк. Остальные раз в час, раз в день. |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Базы Данных | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |