Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Подсчет количества строк от точки A до точки B и все / 16 сообщений из 16, страница 1 из 1
25.10.2014, 10:51:42
    #38787175
zhurchick
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсчет количества строк от точки A до точки B и все
Приветствую всех.
Я уже устал голову ломать, да гугл мучить.
Можно ли одним запросом подсчитать строки в таблице, а именно:
Пользователь отправляет запрос mysqli_num_rows("SELECT `id` FROM `chat_pics` WHERE `id` < 777;"); но таким образом подсчитываются все строки ID которых меньше 777, а как подсчитать еще и все строки?)
...
Рейтинг: 0 / 0
25.10.2014, 20:10:16
    #38787316
javajdbc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсчет количества строк от точки A до точки B и все
zhurchickПриветствую всех.
Я уже устал голову ломать, да гугл мучить.
Можно ли одним запросом подсчитать строки в таблице, а именно:
Пользователь отправляет запрос mysqli_num_rows("SELECT `id` FROM `chat_pics` WHERE `id` < 777;"); но таким образом подсчитываются все строки ID которых меньше 777, а как подсчитать еще и все строки?)


Код: sql
1.
2.
3.
4.
select
  count(1) count_all,
  sum(id<777) count_lt_777
from tbl
...
Рейтинг: 0 / 0
25.10.2014, 21:01:10
    #38787328
zhurchick
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсчет количества строк от точки A до точки B и все
javajdbc,

Спасибо)
А на сколько это медленнее работает по сравнение с простым подсчетом строк через mysqli_num_rows ?
...
Рейтинг: 0 / 0
25.10.2014, 21:18:39
    #38787342
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсчет количества строк от точки A до точки B и все
zhurchick,

это быстрее
...
Рейтинг: 0 / 0
25.10.2014, 22:20:00
    #38787360
zhurchick
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсчет количества строк от точки A до точки B и все
tanglir,

Извините за такой поток вопросов. А можете вкратце объяснить почему?)
...
Рейтинг: 0 / 0
25.10.2014, 22:30:53
    #38787371
mikhalken
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсчет количества строк от точки A до точки B и все
Потому что в первом случае сервер отдаёт все результаты запроса, а клиент уже их считает, а во втором сервер быстренько считает их у себя и посылается только конечное число записей.
...
Рейтинг: 0 / 0
25.10.2014, 22:40:07
    #38787373
zhurchick
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсчет количества строк от точки A до точки B и все
mikhalken,

я думал mysqli_num_rows на стороне сервера считает. Странно...
...
Рейтинг: 0 / 0
25.10.2014, 22:52:34
    #38787380
mikhalken
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсчет количества строк от точки A до точки B и все
Я, на самом деле, php практически не знаю. Но вместо подобного запроса на сайте друга написал процедурку, которая выводит количество сразу. Прирост скорости оказался заметен, из-за чего и сделал такой вывод.
...
Рейтинг: 0 / 0
26.10.2014, 11:46:19
    #38787504
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсчет количества строк от точки A до точки B и все
zhurchickя думал mysqli_num_rows на стороне сервера считаетПрежде чем думатьгадать, почитали бы хоть про функцию - ведь даже русское описание есть: http://www.php.su/mysql_num_rows mysql_num_rows() возвращает количество рядов результата запроса А поскольку функция работает на стороне клиента (пхп), то чтобы посчитать количество записей результата, ей нужно получить этот самый результат. Все его записи.
...
Рейтинг: 0 / 0
26.10.2014, 14:31:19
    #38787572
Alex_Ustinov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсчет количества строк от точки A до точки B и все
авторна стороне клиента (пхп)
у клиента нет ПХП. ПХП только на Веб-сервере... В этом и прелесть Веб-приложений...
У клиента дохлый Пень3-4 с ВинХР на борту...
...
Рейтинг: 0 / 0
26.10.2014, 14:49:04
    #38787583
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсчет количества строк от точки A до точки B и все
Alex_Ustinov, фЪйспалм... по отношению к мусклю пхп является как раз клиентом, а про "дохлый пень" мускль не знает вообще.
...
Рейтинг: 0 / 0
26.10.2014, 19:00:15
    #38787679
Alex_Ustinov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсчет количества строк от точки A до точки B и все
tanglir, вы человеку мозг закомпосируете... и себе тоже...

устаканим понятия:
ПХП - "язык" веб-сервера, работает на Веб-сервере... все функции ПХП отрабатываются на Веб-сервере.

1. Mysql не знает и о ПХП, могут находиться на разных физических серверах.
2. подключившись даже в командной строке mysql -u -p (неважно на Лин Вин) - вы уже клиент, подключение может быть совершенно с другого ПК, не обязательно с "сервера"

1, 2 вы отвергать не можете, сервер СУБД не знает ни о чем, у него другие задачи... так что предлагаю не разводить полемику...
и Этак мы далеко уйдем...
вопрос стоял совершенно по другому... что быстрее...

zhurchick,
ДЛЯ ПОЛУЧЕНИЯ ТОЛЬКО количества строк БЫСТРЕЕ count(), так как возвратит 1 число... без вытягивания данных к "КЛИЕНТУ"

ЕСЛИ вам необходимы данные в ПХП, то делайте запрос на получение данных и mysql_num_rows() уже будет знать, сколько данных ПОЛУЧЕНО на обработку Веб-серверу...
...
Рейтинг: 0 / 0
26.10.2014, 19:23:18
    #38787686
javajdbc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсчет количества строк от точки A до точки B и все
Alex_Ustinov, tanglir

Вы говорите об одном и томже по сути и
разногласия на ровном месте просто из-за
двойного контекста слава "клиент".

В трехзвенке ПХП есть "клиент" для мыскл и
"сервер" для веб-пользователя (для броузера). Мускл -- "сервер"
для ПХП и никто для веб-пользователя, ну и
соттвествено веб-пользовател -- "клиент"
для ПХП и никто для мускл.
...
Рейтинг: 0 / 0
27.10.2014, 07:10:53
    #38787811
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсчет количества строк от точки A до точки B и все
Alex_UstinovMysql не знает и о ПХПа кто мусклю запросы посылает? астральная фея?
javajdbcВы говорите об одном и томже по сути и
разногласия на ровном месте просто из-за
двойного контекста слава "клиент".Ну да. Хотя вроде бы ясно написал:
tanglir по отношению к мусклю пхп является как раз клиентомЧто там могло быть непонятного?..
...
Рейтинг: 0 / 0
27.10.2014, 11:29:08
    #38787977
Alex_Ustinov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсчет количества строк от точки A до точки B и все
javajdbc,

:-)
есть у меня трехзвенки двухзвенки, все это понятно (МНЕ).

автора кто мусклю запросы посылает? астральная фея?клиентская "библиотека"...
С точки зрения клиента PHP как клиент и MySQL-клиент совершенно равнозначны. Суть вопроса - практически одна клиентская "библиотека"...
Для СЕРВЕРА MySQL - PHP суть "абстактная фея" в вашей терминологии...
у сервера mysql есть "двери" через которые он пускает "вопросы" и отдает "ответы"
что находится за "дверью" сервер не знает... он либо принимает "вопрос" и отдает "ответ", либо говорит - "извини, дверь, не понимаю твой вопрос..."
дверь - это клиентская "библиотека"

утяготим сырбор...

лучше не открыватьТогда смею утверждать, что в условиях чистого клиента (как mysql-клиента, так и PHP-как клиента) на удаленной "машине"...
mysql_row_num() отработает быстрее, при условии того что отрабатывается только по завершению запроса (так как данные уже получены, время будет затрачено только на "визуализацию" циферки)
чем запрос с count() (включим накладные расходы на коннект транспорт и т.д.)
НО (и опять нюанс...)
и все-таки, если речь идет о PHP в смысле вывода данных порционно, то использовать необходимо count() для честной цифры строк в ТАБЛИЦЕ а не в запросе,
...
Рейтинг: 0 / 0
27.10.2014, 12:28:13
    #38788064
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсчет количества строк от точки A до точки B и все
>Mysql не знает и о ПХП
>>а кто мусклю запросы посылает? астральная фея?
>клиентская "библиотека"
то есть пхп...
Alex_Ustinovу сервера mysql есть "двери" через которые он пускает "вопросы" и отдает "ответы"
что находится за "дверью" сервер не знает... он либо принимает "вопрос" и отдает "ответ", либо говорит - "извини, дверь, не понимаю твой вопрос..."
дверь - это клиентская "библиотека"Вот именно, но тогда мне совершенно непонятно, с чего вы взяли, что
Alex_UstinovТогда смею утверждать, что в условиях чистого клиента (как mysql-клиента, так и PHP-как клиента) на удаленной "машине"...
mysql_row_num() отработает быстрее, при условии того что отрабатывается только по завершению запроса ( так как данные уже получены , время будет затрачено только на "визуализацию" циферки)
чем запрос с count() (включим накладные расходы на коннект транспорт и т.д.)
Если запрос всех данных уже прошёл - тогда конечно будет быстрее, но ТС-то спрашивалzhurchickМожно ли одним запросом подсчитать строки в таблице, какой подход будет лучше, если ему надо только узнать количество записей: тянуть все данные с сервера + считать количество строк на клиенте или сразу посчитать это на сервере и передать одну цифру. По-моему, ответ очевиден.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Подсчет количества строк от точки A до точки B и все / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]