Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: скорость и структура запросов к бд

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: повысить быстродействие
broshurkaplus
Отправлено: 20 Июля, 2014 - 13:22:40
Post Id



Посетитель


Покинул форум
Сообщений всего: 354
Дата рег-ции: Янв. 2011  
Откуда: Пружаны Бресткая обл. Беларусь


Помог: 2 раз(а)




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


сейчас настроено так:
добавляем товар - в таблице висит триггер который апдейтит нужные таблицы (увеличивает счетчик товаров на 1)
считаю что это уменьшает колво запросов к бд, увеличивает скорость + имею сразу готовое количество товаров по городам и регионам при серфинге гостей по сайту те не придется каждый раз подсчитывать записи для формирования меню страниц
1 ВОПРОС: правильно ли я мыслю, те имеет ли место быть этот вариант? КАК сделать правильно/лучше и быстрее?


при перемещению по сайту дергаем т. товары, при выборке она джойнится с некоторыми другими в зависимости от посещаемых страниц. из т. товары выбирается каждый раз 15-35 столбцов, те не все.
2 ВОПРОС: для повышения быстродействия, скорости имеет ли смысл выбирать только те столбцы, прописывать их в запросе которые нужны (увеличивает код, слоужно ориентироваться) ? или при более полной выборке стоит использовать (*) ? как правильнее поступить?


пользователи рекламируют свои товары внутри сайта - в таблице для таких товаров поле- счетчик количества просмотров. таким образом каждый раз при просмотре страницы с товарами показывается несколько (4-12шт) рекламных (отбираем по критериям основной страницы), соответственно после выборки основных + выборки рекламных - опять дергаем-апдейтим таблицу, чтобы обновить количество просмотров (использую апдейт IN (тут ид тех которым изменить просмотры)).
3 ВОПРОС: как тут организовать правильно? какие можете дать рекомендации по по оптимизации и повышению быстродействия?


у юзеров есть тип аккаунта, для разных типов ак-в установливается разное количество показов их рекламы и самих объявлений (напр.: простому - 5объявок по 1000показов для вип -20об/10 000показов). реклама отображается по принципу - сначала тех у кого осталось показов больше. тут на лицо неравномерность показа, те простые ак-ты устанут стоять в очереди пока их реклама начнет отображаться.
заказчику предлагаю решение - уравнять количество показов для всех, скорректировав кол-во объявок.
4 ВОПРОС: может предложите какое то альтернативное решение?

код в проекте - SQL. читал разные форумы и тд, что SQL и SQLli смысл, скорость и суть - та же, те нет принципиальной разницы
5 ВОПРОС: стоит ли переходить на li ? чем чревато оставить простой SQL ? какую выгоду получу перейдя на li ?

с нетерпением жду ваших ответов и комментариев по каждому вопросу.
спасибо
 
 Top
Viper
Отправлено: 20 Июля, 2014 - 17:39:00
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




1. правильно. лучше 1 раз посчитать, чем 201.
2. зло всех запросов это как раз таки * вместо перечисления нужных.
3. похоже что никак.
4. дык разделено же показы/юзер. зачем ещё очередь делать? лишний геморой имхо. избавить!
5. если вы имеете ввиду mysql и mysqli - http://php.net/manual/ru/mysqli.overview.php


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
broshurkaplus
Отправлено: 20 Июля, 2014 - 22:23:48
Post Id



Посетитель


Покинул форум
Сообщений всего: 354
Дата рег-ции: Янв. 2011  
Откуда: Пружаны Бресткая обл. Беларусь


Помог: 2 раз(а)




спасибо.

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

про 5: mysql и mysqli. похоже для задела на будущее придется переделывать на mysqli
я правильно понял прочитав по сылке - поддержка mysql будет оставаться в будущем, и созданный ранее код будет отлично работать? но для более полного использования всех возможностей срвера mysq лучше переходить на mysqli уже сейчас?
и еще в тему:
в процессе перестройки на mysqli - может ли, пока перестраивать буду, сосуществовать в одном файле/скрипте код mysq и mysqli?

прокомментируйте пожалуйста.
и да - жду еще ответов в топик.
спасибо
 
 Top
Viper
Отправлено: 21 Июля, 2014 - 10:53:52
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




1. Я хотел сказать, что очередь для каждоо юзера должна быть своя, т.к. иначе как раз таки и получится что все будут ждать одного.
2. Поняли правильно.

broshurkaplus пишет:
в процессе перестройки на mysqli - может ли, пока перестраивать буду, сосуществовать в одном файле/скрипте код mysq и mysqli?
смотря как у вас интерфейс коннекта с базой устроен.
Хотя я бы не рекомендовал в одном скрипте такое делать. Лучше оставить как есть, сделать копию проекта, и начать переделывать вызовы.
Это в том случае если у вас живой проект который не должен простаивать.


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
DelphinPRO
Отправлено: 21 Июля, 2014 - 11:03:57
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




broshurkaplus пишет:
я правильно понял прочитав по сылке - поддержка mysql будет оставаться в будущем

Где вы такое прочитали?
php.net пишет:
Данное расширение устарело, начиная с версии PHP 5.5.0, и будет удалено в будущем.

в версии 5.5 уже deprecated, а потом совсем удалят


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB