Forum Webscript.Ru

Общие => Базы данных => Тема начата: Rastaman от 29 Ноября 2002, 20:57:31

Название: оптимизация
Отправлено: Rastaman от 29 Ноября 2002, 20:57:31
Написал скрипт, он выводит юзеру страницу выполняя при этом приблизительно 200 запросов к БД которые возвращают по 4 цифры которые потом обрабатываются скриптом
и результат выводится на страницу. И вот что-то волнуюсь я за быстроту выполнения. На моем локалхосте примерно секунда а что будет на реальном серваке при большом кол-ве юзеров представить страшно. Всвязи с чем спрашиваю можно ли это дело оптимизировать? Можно конечно данные БД хранить в текстовом файле но тогда потеряется гибкость sql. Может быть писать скрипт на C++?
Название: оптимизация
Отправлено: Chs от 29 Ноября 2002, 22:12:18
Просто нужно оптимизировать количество запросов, может быть структуру базы, но в общем случае не видя запросы и структуру базы ничего сказать нельзя.
Но 200 запросов на страницу это круто!:))
Название: оптимизация
Отправлено: Tronyx от 29 Ноября 2002, 23:01:35
ИМХО 200 запросов говорит не о плохой структуре БД, а об ужаснейшей! Уменьши число запросов.
Название: оптимизация
Отправлено: Rastaman от 30 Ноября 2002, 15:58:16
Уменьшить никак нельзя - это что-то типа карты размером
10X10 клеток на каждой картинка выводится в соответствии с хранящимся в БД значением.
Тогда другой вопрос - а если из файлов это дело читать то на много ли быстрее это получится?
Название: оптимизация
Отправлено: Tronyx от 30 Ноября 2002, 16:26:38
Цитировать
10X10 клеток на каждой картинка выводится в соответствии с хранящимся в БД значением.

А одним запросом их получить нельзя?

Цитировать
а если из файлов это дело читать то на много ли быстрее это получится?

Попробуй, надо тестировать...
Название: оптимизация
Отправлено: Макс от 30 Ноября 2002, 16:27:26
Цитировать
если из файлов это дело читать то на много ли быстрее это получится?
вполне возможно.
как вариант - сделай серверное кеширование результатов SQL-запросов.
Название: оптимизация
Отправлено: Rastaman от 30 Ноября 2002, 20:57:26
2Tronyx
одним нельзя но можно обойтись десятью правда структура у базы будет не очень красивая

Вот еще вопрос : быстрее 10 запросов вытягивающих по 4 цифры или один - но 40 цифр?

2Макс что есть серверное кэширование?
Название: оптимизация
Отправлено: Дмитрий Попов от 30 Ноября 2002, 21:16:21
Rastaman
Чего-то мне подсказывает, что можно и одним, просто Вы SQL недостаточно знаете.

Цитировать
Вот еще вопрос : быстрее 10 запросов вытягивающих по 4 цифры или один - но 40 цифр?

Я наверное Вас удивлю, но один, вытаскивающий и 100 цифр тоже будет быстрее, в нормальных условиях.
Название: оптимизация
Отправлено: Tronyx от 30 Ноября 2002, 21:19:28
Цитировать
быстрее 10 запросов вытягивающих по 4 цифры или один - но 40 цифр?

Зависит от индексов, размера таблицы и сложности запросов, точный ответ не зная этих трёх факторов дать нельзя.

Цитировать
что есть серверное кэширование?

Посмотри ADODB(http://php.weblogs.com/) это класс для абстрактной работы с БД, там есть и кэширование запросов.
Лично мне он не нравится, т.к. очень много лишнего, да и работу с кэшем можно было сделать гораздо удобней. ИМХО.
Название: оптимизация
Отправлено: Макс от 01 Декабря 2002, 01:13:58
Цитировать
там есть и кэширование запросов
как варианты - pear :: cache (я не очень его уважаю) или pear :: cache_lite (оптимизирован под текстовые файлы, правда для кеширования SQL-запросов прийдется поработать мозгами и руками).
Название: оптимизация
Отправлено: Rastaman от 01 Декабря 2002, 11:33:58
thanx
пойду изучать SQL