Оптимизация php кода, для базы данных





1 В моём php файле открывается база данных sqlite3.
2 Подготавливается SQL в код виртуальной машины sqlite3.
3 Потом забирается результат из ответа базы, согласно url.

Как надо запрограммировать ? Чтобы при каждом посешении страницы выполнялось только 3, а не 1 2 3 ! Тоесть я хочу чтоб пункты 1 2 выполнились один раз, а пункт 3 повторялся при открытии страницы.
  • 31 июля 2009, 22:23
  • urok97

Ответы (15)

RSS
+
0
Можно попробовать так:
start_session();
$_SESSION["sqlite_connection"]=sqlite_open(...);
$_SESSION["statement"]=...
avatar

zaba

  • 31 июля 2009, 13:37
+
0
А как по вашему результаты будут появляться? Неоткуда?

Если у "sqlite3" есть persistent (постоянные) соединения, можете использовать их, это существенно сократит загрузку (но и прибавит песка в головоломку).

Если же нету, то остается только фетчить запрос и сохранять его где-либо. (в $_SESSION, если будет заходить некий умеющий держать куки, или же в отдельный файл var_export'om, а потом простым исклюдом.. вобщем, варианты есть.)

Можете использовать memcached, eAccelerator для сохранения вашего test.php в скомпилированном виде, тоже вариант..
avatar

olyang

  • 2 августа 2009, 00:52
+
0
если результат не слишком часто меняется можно кэшировать.
avatar

faz

  • 31 июля 2009, 02:24
+
0
Не стоит делать одну доступ сессию. Есть возможности ее перехватить же. А так.. ответ выше дан.
avatar

leksandr-ruz

  • 1 августа 2009, 09:37
+
0
1. Использовать sqlite_popen()
Эта функция создает постоянное соединение с базой, которое не обрывается после завершения работы скрипта
http://doc.mpv.ru/php/function.sqlite-popen.html

2. А можно подробнее, как создается запрос и для каких целей эти требования предъявлены? Готовый запрос можно хранить в вышеуказанной базе и извлекать его при каждом выполнении скрипта. Другой вариант - хранить в файле, что проигрывает первому варианту по быстродействию, поскольку используется постоянное соединение. Больше вариантов не вижу. Любое кеширование или хранение в сессии является одинм из вышеописанных вариантов по своей сути.
avatar

skalondon

  • 1 августа 2009, 02:03
+
0
И еще вариант - почему бы твой запрос просто не захардкодить в коде скрипта?
avatar

rak

  • 1 августа 2009, 10:54
+
0
>Результаты нищебродской скулиты будем класть в мемкеш.
Хм, наверно стоит ею просто подавиться. Типа "аптимизация" для дураков, кхэхкхэкф...

СИС.
avatar

rk108

  • 2 августа 2009, 07:35
+
0
Гугл в помощь, вариантов решений хватает, даже с примерами.
avatar

vladon

  • 1 августа 2009, 15:11
+
0
Ахахахаха! Вы оцените псевдокод! Это ж вообще стенд-ап комеди!
дооооооооооолгая_инициализиция_и_открытие_базы();
дооооооооооолгая_компиляция_sql!
Оказывается, тем дольше работает база, чем длиннее запрос!
Ой укатайка. Ну я понимаю, каждый ламер мечтает оптимизировать кавычки. Но чтоб настолько пальцем в небо )))))))))
avatar

ertolet

  • 1 августа 2009, 07:14
+
0
Поздравляю, Basilevs, ты идиот
Что, впрочем, не выделяет тебя из общей массы посетителей данного сервиса )

Аффтар. Ответ на твой вопрос очень простой - перестать маяться дурью. То, чем ты занимаешься, называется не оптимизация, а "заставь дурака богу молиться - он лоб расшибет".
Но писать тебе это - только тратить время, поскольку ты же у нас Самый Умный ))))
avatar

leksej-etrov

  • 31 июля 2009, 02:07
+
0
Судя по дополнению 8, аффтар - кретин. И не лечится.
Я понял. Это разводка, для развлечения публики. В реальности таким дебилом быть невозможно. поздравляю, шутка удалась ))))
avatar

xuman

  • 1 августа 2009, 23:31
+
0
если бы fcgi сервер работал так, как тебе мечтается, это была бы песня.
одан юзер смотрит мультики, а другой порнуху. пока у одного "компилировался sql" (укатайка!), другой заходит.

Но самый, конечно, анекдот - это про время компиляции. я понимаю, у него бы действительно была база. и она бы действительно тормозила. там, где обычно базы тормозят - на выборках. Но экономить коннекты - это круче Петросяна.
avatar

urij-ikin

  • 1 августа 2009, 09:39
+
0
Засунь себе свои сто баллов в... то место, которым думаешь.
avatar

cavenger

  • 1 августа 2009, 20:38
+
0
По-моему, аффтар сильно туповат.
avatar

ikolauskas

  • 1 августа 2009, 03:41
+
0
Да-да. И типичные ответы без ума. Результаты нищебродской скулиты будем класть в мемкеш.
avatar

bawn

  • 2 августа 2009, 07:22

Только зарегистрированные и авторизованные пользователи могут отвечать.