Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
1152 / 554 / 320
Регистрация: 21.06.2012
Сообщений: 1,854

Как сэкономить время при session_start и mysql_connect?

01.03.2017, 13:10. Показов 1470. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую всех!

Задача стоит такая: нужно выводить данные из БД ajax-ом каждую минуту.

Решаю так: из индексного файла посылаю ajax запрос в файл обработчик, в файле обработчике стартую сессии и подключаюсь к БД
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
session_start();
 
$db_host   = 'localhost';
$db_user   = 'user';
$db_pass  = '000';
$db_database = 'db'; 
 
$conn = mysql_connect($db_host,$db_user,$db_pass);
mysql_select_db($db_database,$conn) or die("Нет соединения с БД ".mysql_error());
 
mysql_query("SET NAMES 'utf8'", $conn);
mysql_query("SET character_set_client = 'utf8'", $conn);
mysql_query("SET character_set_connection = 'utf8'", $conn);
mysql_query("SET character_set_results = 'utf8'", $conn);
Далее едет выборка по условиям одно из которых значения из сессии.

Вся беда в том что вышеописанный код выполняется аж за 2 секунды (одна секунда на session_start и вторая на mysql_connect). И когда пользователь меняет какой-то параметр на главной, то он ждет 2 секунды и только потом получает ответ.

Как ускорить этот процесс?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
01.03.2017, 13:10
Ответы с готовыми решениями:

Как сэкономить время и ресурсы при выполнении кода VBA
Доброго всем времени суток. Проблема такая: есть лист, в котором есть огромная таблица - много строк и столбцов. В каждой ячейке матрицы...

Как сэкономить время?
Грустная история стандартного человека: Утро. Встать. Не то что бы лежать покуда охота. Далее выход в люди: Причесаться, смыть с себя...

Время выполнения mysql_connect()
Здравствуйте. На локальной машине стоит виртуальный хост. Решил проверить время выполнения функции mysql_connect(). $x =...

10
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
01.03.2017, 14:39
Не может этого быть.
Что выведет данный скрипт?
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
 
$start = microtime(true);
 
session_start();
 
$db_host   = 'localhost';
$db_user   = 'user';
$db_pass  = '000';
$db_database = 'db'; 
 
$conn = mysql_connect($db_host,$db_user,$db_pass);
mysql_select_db($db_database,$conn) or die("Нет соединения с БД ".mysql_error());
 
mysql_query("SET NAMES 'utf8'", $conn);
mysql_query("SET character_set_client = 'utf8'", $conn);
mysql_query("SET character_set_connection = 'utf8'", $conn);
mysql_query("SET character_set_results = 'utf8'", $conn);
 
echo microtime(true) - $start;
exit;
0
1152 / 554 / 320
Регистрация: 21.06.2012
Сообщений: 1,854
01.03.2017, 15:01  [ТС]
Так я этим скриптом и проверял...
PHP
1
echo "Время выполнения скрипта: ".(microtime(true) - $start_mt0);
Выводит: Время выполнения скрипта: 2,0355448722839

Добавлено через 10 минут
А в самом индексном файле тоже стоит аналогичное соединение и оно выводит:
PHP
1
Время выполнения скрипта: 1,0148310661316
Но это на индексной, а в файле скрипте обработчике за две секунды выполняется...
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
01.03.2017, 15:02
А если закомментировать все строки с mysql_query?
0
1152 / 554 / 320
Регистрация: 21.06.2012
Сообщений: 1,854
01.03.2017, 15:04  [ТС]
Время выполнения скрипта: 2,0310649871826
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
01.03.2017, 15:12
Лучший ответ Сообщение было отмечено sasha0012 как решение

Решение

О как. Значит в соединении с MySQL-сервером есть задержки. Для начала попробуйте заменить localhost на 127.0.0.1.
Если и это не поможет -- значит либо MySQL-сервер неверно настроен, либо просто запускаете на слабой машине. Либо какая-нибудь программа ресурсы использует неслабо.

Добавлено через 36 секунд
Ещё вариант, если запускаете на хостинге: сервер базы может быть перегружен.
1
1152 / 554 / 320
Регистрация: 21.06.2012
Сообщений: 1,854
01.03.2017, 15:29  [ТС]
Ого! поменял localhost на 127.0.0.1 и стало: "Время выполнения скрипта: 0,028635025024414"
А почему так? Что изменилось?
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
01.03.2017, 15:41
Сам я с таким не сталкивался, но встречал, что люди жалуются на подобные проблемы. Вот, посмотрите:
http://epsiloncool.ru/programm... -windows-7
1
1152 / 554 / 320
Регистрация: 21.06.2012
Сообщений: 1,854
01.03.2017, 16:26  [ТС]
Да... Интересно виндос пляшет...

Спасибо Para bellum!

Еще один вопрос, возможно ли как-то кэшировать подключение к БД, чтобы не соединяться при каждом вызове файла? Я не совсем понимаю сам механизм процесса, поэтому и спрашиваю про схему аналогично кэширования страниц сайтов(контента) браузерами для экономии трафика и времени загрузки страницы.

А то если делать чат с проверкой каждую секунду, то как-то ресурсозатратно получается...
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
01.03.2017, 19:01
Цитата Сообщение от sasha0012 Посмотреть сообщение
возможно ли как-то кэшировать подключение к БД, чтобы не соединяться при каждом вызове файла?
Есть постоянные соединения, но там тоже свои подводные камни.
http://php.net/manual/ru/featu... ctions.php
1
1152 / 554 / 320
Регистрация: 21.06.2012
Сообщений: 1,854
01.03.2017, 19:24  [ТС]
Понял. Спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.03.2017, 19:24
Помогаю со студенческими работами здесь

Можно ли как-либо сэкономить память при динамическом создании объектов?
С QT работаю недавно. Появилась задача в программе динамически создавать QPushButton Создаю следующим образом: ... QPushButton *pb =...

Как сэкономить свой боезапас при нанесении массированного ядерного удара?
Добрый вечер! Как сэкономить свой боезапас при нанесении массированного ядерного удара? Спасибо.

Как сэкономить память?
#define PORTS 260 #define MAX_NUMBER_OF_ENTRIES 255 Есть у нас такой интересный указатель: STRUCT_T (*location); Под него...

C# или как сэкономить
Вот вопрос по C# если допустим к примеру я обьявляю 2 константы (ну так теоретически!!!) String x1 = &quot;Текст1&quot;; String...

Ошибка при session_start()
&lt;?php session_start(); $number = addslashes(strip_tags(trim($_POST))); echo $number; ?&gt; Выдает ошибку, что делать?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru