Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.01.2016, 22:34   #1
MedwedoS
Пользователь
 
Аватар для MedwedoS
 
Регистрация: 24.02.2014
Сообщений: 72
По умолчанию Частое получение данных из БД

На сайте есть меню.
В БД создал базу | ID | Button_name |
необходимо получать список кнопок из базы и собсно выдавать этот список меню.

Реализовал так:
PHP код:
//Подключаемся к базе
include('sql/connectbd.php');

//Вытаскиваем текущий список категорий
$sql_select_cat = "SELECT * FROM posts_categories ORDER BY ids ASC";
$menus = mysql_query($sql_select_cat);
//Вытаскиваем текущий список тэгов
$sql_select_tag = "SELECT * FROM tags ORDER BY ids ASC";
$menut = mysql_query($sql_select_tag);
mysql_close();
?>

<h5 class="leftpanel-title">Главное меню</h5>
                    <ul class="nav nav-pills nav-stacked">
                        <?php echo $menuselect ?><a href="http://mysite.ru/"><i class="fa fa-home"></i> <span>Общая страница</span></a><?php echo $menuselectend ?>
                        <?php echo $menuselect2 ?><a href="http://mysite.ru/notes"><i class="fa fa-envelope-o"></i> <span>Короткие заметки</span></a><?php echo $menuselectend ?>
                        <li class="parent"><a href=""><i class="fa fa-edit"></i> <span>Категории записей</span></a>
                            <ul class="children">
                                <?php
                                    
//Цикл массива для вывода всех категорий в меню
                                    
while($categorymenu mysql_fetch_array($menus)) {
                                        echo 
'<li><a href="http://mysite.ru/viewcat?id='.$categorymenu['ids'].'&catname='.$categorymenu['category'].'">'.$categorymenu['category'].'</a></li>';
                                    };
                                
?>
                            </ul>
                        </li>
                        
    Ну и так же для тегов.
Возник вопрос, при переходах по страницам сайта соответственно каждый раз будет делаться запрос в базу.
Если на сайте будет 100+ усеров, то нагрузка будет расти по мере серфигна страниц.

Как избежать такого подскажите?

Последний раз редактировалось MedwedoS; 27.01.2016 в 22:38.
MedwedoS вне форума Ответить с цитированием
Старый 27.01.2016, 23:01   #2
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,158
По умолчанию

1. а вы подсчитайте кол-во запросов на отображение одной страницы
2. главное не делать запросов в циклах
ADSoft вне форума Ответить с цитированием
Старый 28.01.2016, 11:50   #3
CodeNOT
Форумчанин
 
Аватар для CodeNOT
 
Регистрация: 08.11.2010
Сообщений: 593
По умолчанию

Держите кеш, тогда проблем не будет

Последний раз редактировалось CodeNOT; 28.01.2016 в 11:55.
CodeNOT вне форума Ответить с цитированием
Старый 28.01.2016, 12:26   #4
SergeyRus
 
Регистрация: 26.01.2016
Сообщений: 5
По умолчанию

Странная ситуация складывается - БД изначально заточены под огромное кол-во запросов. А некоторые хостеры, ограничивают, вместо наращивания мощностей.. Ну и правильно дали намек на "а вы подсчитайте кол-во запросов на отображение одной страницы". Может потому и ограничивают?
p.s. Ключи рулят. Встречал много раз, особенно "бесплатные" скрипты - где на такую "мелочь" не обращают внимание.

Последний раз редактировалось SergeyRus; 28.01.2016 в 12:28.
SergeyRus вне форума Ответить с цитированием
Старый 28.01.2016, 12:46   #5
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
А некоторые хостеры, ограничивают, вместо наращивания мощностей.
Ну не пользуйтесь shared хостингом и будет счастье.
И вроде ж ограничения обычно зависят от тарифа.

Цитата:
Если на сайте будет 100+ усеров, то нагрузка будет расти по мере серфигна страниц.
Для этого придумано кеширование.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 28.01.2016 в 12:55.
Alex11223 вне форума Ответить с цитированием
Старый 28.01.2016, 14:00   #6
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,158
По умолчанию

100 пользователь при 20 например запросах на страницу - всего 2000 запросов..... но это же не в сек.... ерундовая нагрузка

не знаю у меня по есть сайт, где 3-4 тыщ, пользователей при кол-ве запросов на страницу сайта 10-20 запросов. И нормально все пашет

P/S/ проблемы надо решать по мере их появления
ADSoft вне форума Ответить с цитированием
Старый 28.01.2016, 17:25   #7
Illusiony
Форумчанин
 
Регистрация: 17.02.2014
Сообщений: 881
По умолчанию

Извините, если вставлю сюда свое. У меня в пики нагрузки количество запросов более , примерно 2х сотен в секунду. Основные нагруженные таблицы Mysql переделал с Myqsam на memory и почти всю статику перенес на папку в оперативной памяти. При перезагрузке сервера важные данные копируются с ssd Myisam в memory и с раздела ssd статика в оперативку. Сервер обходится в 5 USD. Да я там еще добавил функционала в свой проектик, и был один момент заметны тормоза, но это до полного переноса таблиц на memory. Ну и, конечно, почти вся статика кешируется в браузере, и в последующем юзер будет все меньше делать нагрузку на сервер.

Я понимаю, что можно было сделать еще лучше другими средствами, но это наиболее простой способ, тем не менее значительно ускоряет работу.
Правда таблицы весьма маленькие и запросы не сложные, но тем не менее.

Последний раз редактировалось Illusiony; 28.01.2016 в 17:39.
Illusiony вне форума Ответить с цитированием
Старый 28.01.2016, 21:13   #8
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,158
По умолчанию

индексы, мемкеш разгрузят . + правильные запросы
ADSoft вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получение данных King_Of_Arthur БД в Delphi 1 05.08.2013 10:31
получение данных из файла и запись этих данных в другой. Jurii77 Microsoft Office Excel 9 23.11.2011 09:42
Получение данных mish@ Работа с сетью в Delphi 0 28.04.2010 15:08
получение данных avis Win Api 0 19.12.2009 19:24
Получение данных с БД. urgu_st SQL, базы данных 5 13.01.2009 15:11