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 сек. Что здесь я сделал не так?
vorona 1) select count(*) from news 2) SELECT `column1`, `column2`, `column3` и так далее FROM news ORDER BY id DESC limit ... 3) Стоит ли индекс на столбце id
1) Спасибо. 2) А зачем? Если мне нужны все поля? Ведь можно просто поставить * и не перечислять всё? 3) PRIMARY.
vorona если в будущем вы решите добавить к таблице дополнительные столбцы - это приведет к ненужному увеличению нагрузки, лучше один раз прописать какие столбцы вам действительно нужны, чем потом удивляться, почему система начала тормозить.