Вывод данных из БД. Высокая генерация.

Discussion in 'PHP' started by vorona, 10 Aug 2010.

  1. vorona

    vorona Member

    Joined:
    7 Sep 2009
    Messages:
    392
    Likes Received:
    7
    Reputations:
    1
    PHP:



    $perpage 
    20// Количество отображаемых данных из БД

    if (empty($_GET['p']) || ($_GET['p'] <= 0)) {
    $page 1;
    } else {
    $page = (int) $_GET['p']; // Считывание текущей страницы
    }
    // Общее количество информации
    $count mysql_numrows(mysql_query('select * from news')) or die('Записей не найдено!');
    $pages_count ceil($count $perpage); // Количество страниц

    // Если номер страницы оказался больше количества страниц
    if ($page $pages_count$page $pages_count;
    $start_pos = ($page 1) * $perpage// Начальная позиция, для запроса к БД



    // Вывод информации из базы данных

    $result mysql_query('select * from news ORDER BY id DESC limit '.$start_pos.', '.$perpage) or die('error!');
    while (
    $row mysql_fetch_array($result)) {
    Вывод новости
    }

    В таблице news 10.000 записей.
    Если использовать этот код, то генерация достигает до 2 сек.

    Что здесь я сделал не так?
     
  2. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    vorona 1) select count(*) from news
    2) SELECT `column1`, `column2`, `column3` и так далее FROM news ORDER BY id DESC limit ...
    3) Стоит ли индекс на столбце id
     
    _________________________
    1 person likes this.
  3. vorona

    vorona Member

    Joined:
    7 Sep 2009
    Messages:
    392
    Likes Received:
    7
    Reputations:
    1
    1) Спасибо.
    2) А зачем? Если мне нужны все поля? Ведь можно просто поставить * и не перечислять всё?
    3) PRIMARY.
     
    #3 vorona, 10 Aug 2010
    Last edited: 10 Aug 2010
  4. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    vorona если в будущем вы решите добавить к таблице дополнительные столбцы - это приведет к ненужному увеличению нагрузки, лучше один раз прописать какие столбцы вам действительно нужны, чем потом удивляться, почему система начала тормозить.
     
    _________________________
    1 person likes this.