PHP/MySQL | Как зделать вывод количества юзеров?
PAIN (09.02.2021 в 10:28)
AI решает этот вопрос
AI решает этот вопрос
нет, не решает, а если правильно спроектирована БД, то тебе сам мускул не даст удалить юзера, у которого есть данные в других таблах
и правильно сделает, я бы ещё на уровне мускула закрыл тебе сразу доступ в админку мускула после таких действий

PAIN, а это кто то на хабре вроде ссылаясь на официальные доки (которые на инглише) выдал статейку когда то ))) Не буду утверждать что факт, но как говорят бытует мнение )) А ты что расстроился то так? Мне кажется что кто бы что не утверждал мало что изменится пока сам не решишь как поступать :)
PAIN (09.02.2021 в 07:20)
[hljs class="php"]$rows = $db->query('select id from users')->num_rows;[/hljs
[hljs class="php"]$rows = $db->query('select id from users')->num_rows;[/hljs
Не стоит так делать, это лишний mysql трафик
Представьте таблицу на 1 миллион
select count() вернёт просто число в php
а select `id` весь миллион id будет передавать в php (int 4 байта *1 000 000 ~= 4 Мб бесполезных данных)
Mobiaaa (09.02.2021 в 10:34)
Не стоит так делать, это лишний mysql трафикПредставьте таблицу на 1 миллионselect count() вернёт просто число в phpа select `id` весь миллион id будет передавать в php (int 4 байта *1 000 000 ~= 4 Мб бесполезных данных)
Не стоит так делать, это лишний mysql трафикПредставьте таблицу на 1 миллионselect count() вернёт просто число в phpа select `id` весь миллион id будет передавать в php (int 4 байта *1 000 000 ~= 4 Мб бесполезных данных)
а лучше как, count(`id`) или count(*) ?
Сибирский (09.02.2021 в 10:32)
PAIN, а это кто то на хабре вроде ссылаясь на официальные доки (которые на инглише) выдал статейку когда то ))) Не буду утверждать что факт, но как говорят бытует мнение )) А ты что расстроился то так? Мне кажется что кто бы что не утверждал мало что изменится пока сам не решишь как поступать :)
PAIN, а это кто то на хабре вроде ссылаясь на официальные доки (которые на инглише) выдал статейку когда то ))) Не буду утверждать что факт, но как говорят бытует мнение )) А ты что расстроился то так? Мне кажется что кто бы что не утверждал мало что изменится пока сам не решишь как поступать :)
Та я вроде не расстраивался

Вилы Выкидные (09.02.2021 в 10:15)
правильный вопросбудет быстрее считать count(`id`) по ОДНОМУ СТОЛБЦУ, который в свою очередь является ИНДЕКСИРУЕМЫМ, все данные из каждой строки выбирать для подсчёта строк не нужнолибо нужно считать count(*)->fetchColumn() или count(*)->fetchColumn(0), это то же самое что count(`id`)
правильный вопросбудет быстрее считать count(`id`) по ОДНОМУ СТОЛБЦУ, который в свою очередь является ИНДЕКСИРУЕМЫМ, все данные из каждой строки выбирать для подсчёта строк не нужнолибо нужно считать count(*)->fetchColumn() или count(*)->fetchColumn(0), это то же самое что count(`id`)
ну я точно не знаю. просто читал где то статью, что лучше считать по столбику, а не все. и можно выбрать не id, а на пример login.
Four (09.02.2021 в 10:35)
а лучше как, count(`id`) или count(*) ?
а лучше как, count(`id`) или count(*) ?
мускулу на SSD похер

Four, тут дело вот еще в чем, если у тебя будет запрос count(`id`) или count(`login`) то SQL выберет только те значения, которые не равны NULL? в случае с AI такого не может случиться, а вот `login` или другое значение вполне себе может. Потому результат будет не количество строк, а количество не NULL значений
Сибирский (09.02.2021 в 10:52)
Four, тут дело вот еще в чем, если у тебя будет запрос count(`id`) или count(`login`) то SQL выберет только те значения, которые не равны NULL? в случае с AI такого не может случиться, а вот `login` или другое значение вполне себе может. Потому результат будет не количество строк, а количество не NULL значений
Four, тут дело вот еще в чем, если у тебя будет запрос count(`id`) или count(`login`) то SQL выберет только те значения, которые не равны NULL? в случае с AI такого не может случиться, а вот `login` или другое значение вполне себе может. Потому результат будет не количество строк, а количество не NULL значений
а каким образом id может быть null? если пользователя удалить, то и духу от него не останется
Four, ну id это только имя имя. Традиционно это конечно первичный ключ значения AI, но ничего не мешает сделать его типа string и писать туда дату рождения к примеру ))