Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Оптимизация запросов обращений к базе, Возможно, я что-то упускаю... 
:(
    Опции темы
Wolf1994
Дата 28.11.2005, 08:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 5.10.2004

Репутация: 2
Всего: 29



Давно использую MySQL, но постоянно открываю для себя что-то новое... smile Всё потому, что не нашёл толкового руководства с примерами (я не говорю о коммерческом сайте mysql.com). Возможно, запросы которые я использую, можно оптимзировать. Пожалуйста, помогите.

Меня интересует как оптимизировать такой код:
Код

$sql = "SELECT * FROM $table_name ORDER BY id";
$result = mysql_query($sql);
while ($row = mysql_fetch_array($result))
{
 if ($row['dir']==$directory && $row['progname']!="")
 {
//...


Сделать через "WHERE"? Но как сделать запрос на соответствие сразу двум условиям: "$row['dir']==$directory" и "$row['progname']!="""?

И ещё, подвопрос: в каком порядке будут выдаваться данные по "WHERE" и можно ли им управлять (комбинироваь "WHERE" и "ORDER")?

Простите за ламерство, но я, действительно, не смог найти ответы на эти вопросы.
PM MAIL WWW   Вверх
-=Ustas=-
Дата 28.11.2005, 09:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: 17
Всего: 69



Wolf1994 http://dev.mysql.com/doc/refman/4.0/ru/index.html - этот ман самый норальный и наиболее полный. Там есть всё. По поводу твоего запроса можно выполнять так:
Код

$sql = "SELECT
            *
        FROM
            ".$table_name."
        WHERE
            (dir = '".$directory."')
        AND
            (progname <> '')
        ORDER BY id";
$result = mysql_query($sql);
while ($row = mysql_fetch_array($result)) {
    echo $row['progname'];
//...



--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
Wolf1994
Дата 28.11.2005, 17:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 5.10.2004

Репутация: 2
Всего: 29



Спасибо. Моя вера в MySQL не подвела меня, наконец-то мой сайт заработает нормально, по крайней мере в том, что касается бызы...
PM MAIL WWW   Вверх
wsr
Дата 9.12.2005, 16:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Fuzzy Logic
*


Профиль
Группа: Участник
Сообщений: 142
Регистрация: 3.7.2005

Репутация: нет
Всего: 2



Да бы не создавать еще одну тему! Тематика сходна!

Хотелось узнать...
Нет ли более быстрого способа узнать сколько в таблице записей кроме как через mysql_num_rows???
Просто если записей в базе туева хуча, то это становится напряжно!

И какой запрос будет быстрее обработан :
1) SELECT * FROM `table`
2) SELECT `id` FROM `table`
#если в таблице более чем 10 колонок
--------------------
 ICQ : 918-318Сайт : Lock-Team 
PM MAIL WWW ICQ   Вверх
-=Ustas=-
Дата 9.12.2005, 16:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: 17
Всего: 69



Цитата(wsr @ 9.12.2005, 16:13)
Нет ли более быстрого способа узнать сколько в таблице записей кроме как через mysql_num_rows???

Код

$sql = "SELECT COUNT(*) FROM your_table";
$res = mysql_query($sql);
$obj = mysql_fetch_object($res);
$obj->count; // всего записей


Цитата(wsr @ 9.12.2005, 16:13)
И какой запрос будет быстрее обработан :
1) SELECT * FROM `table`
2) SELECT `id` FROM `table`
#если в таблице более чем 10 колонок

Естественно 2-ой будет обработан быстрее.


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
wsr
Дата 9.12.2005, 21:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Fuzzy Logic
*


Профиль
Группа: Участник
Сообщений: 142
Регистрация: 3.7.2005

Репутация: нет
Всего: 2



Спасибо!!!
--------------------
 ICQ : 918-318Сайт : Lock-Team 
PM MAIL WWW ICQ   Вверх
Mal Hack
Дата 10.12.2005, 00:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 11
Всего: 261



Цитата
Естественно 2-ой будет обработан быстрее.

Это еще не факт. Факт в том, что результат будет меньше памяти жрать и ДА, меньше времени будет пересылаться, но не факт, что итог будет быстрее.
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.5714 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.