Проблемы с большими массивами

12
sashka_
На сайте с 27.01.2010
Offline
103
#11
admak:
а зачем здесь лишний count(*) ?
можно упростить запрос:
select id from `table` where `id_детали` = '' 

или
select '1' as id from `table` where `id_детали` = ''


если запрос дал пустоту, то детали нет. можно даже не получать поле id из запроса...

а вообще, как сказали выше - уник. индекс

Это очень печально, мне кажется что mysql легче вернуть кол-во строк, чем саму строку.

teent:
siv1987, не буду спорить. Тем более count(*).

P.S.: Поищите статью о тестах производительности count на хабре. Они удручают.

Вот именно поищите. Для чего тогда count предназначен?

http://habrahabr.ru/post/41968/


Выборка строк только для подсчета их количества
$result = mysql_query(«SELECT * FROM table», $link);
$num_rows = mysql_num_rows($result);
Если вам нужно выбрать количество строк, удовлетворяющих определенному условию, используйте запрос SELECT COUNT(*) FROM table, а не выбирайте все строки лишь для того, чтобы подсчитать их количество.
Знаю PHP, JS, jQuery. Помощь для вашего сайта. (/ru/forum/840509).
VHS
На сайте с 28.09.2007
Offline
142
VHS
#12

ТС кстати спросил про скорость добавления, а не скорость выборки. Если что.

Нужно понять - запрос проверки медленный или таблица организована через одно место, или настройки режима работы субд не под ваш случай...

Ради интереса - укажите тип таблицы, структуру, запрос на проверку.

Mad_Man
На сайте с 10.11.2008
Offline
162
#13
VHS:
ТС кстати спросил про скорость добавления, а не скорость выборки. Если что.

Нужно понять - запрос проверки медленный или таблица организована через одно место, или настройки режима работы субд не под ваш случай...

Ради интереса - укажите тип таблицы, структуру, запрос на проверку.

ТС вбросил абстракцию и слился куда-то. Несмотря на это, товагищи в треде уже всё обсудили и решили за ТС, что персонаж стопроцентно юзает мускул в комплекте с пыхом и обращается к полю типа INT(11), которое обязательно уникальное, а оперативе на серваке, вместе с конфигами БД, обязательно хватает места хранить все индексы.

Ну прямо изумительный клиент: таблицы в порядке, сорцы не быдлокод, и вообще всё славно и нет нигде ошибок, только индексы впереть забыл и в скуле не изменил пару слов.

sashka_
На сайте с 27.01.2010
Offline
103
#14

Mad_Man, бывает такое что у mysql не хватает места для хранения индексов?

Mad_Man
На сайте с 10.11.2008
Offline
162
#15
sashka_:
Mad_Man, бывает такое что у mysql не хватает места для хранения индексов?

Зависит от того, сколько на это отведено в конфиге мускуля\марии. Если выделено памяти меньше, чем нужно индексам суммарно по БД, то хранится только часть их в оперативе.

alexspb
На сайте с 14.11.2005
Offline
187
#16
VHS:
ТС кстати спросил про скорость добавления, а не скорость выборки. Если что.

Вот именно.

Насколько помню, скорость вставки сильно зависит от наличия индексов - чем их больше, тем медленнее скорость вставки. Стоит проверить, все ли они нужны реально.

siv1987
На сайте с 02.04.2009
Offline
427
#17
alexspb:
Вот именно.

Не совсем именно... Если почитать пост ТС'а, то у него еще и селекты перед вставкой выполняются, и както по моему он в целом о времени говорит, и нигде нет явного утверждения с тестами, что это именно insert, а все остальное отрабатывает идеально.

alexspb
На сайте с 14.11.2005
Offline
187
#18
siv1987:
Если почитать пост ТС'а, то у него еще и селекты перед вставкой выполняются

Он пишет, по сути, про один селект - уникальный айди детали ищет, что, как уже обсудили, правильнее делать через использование поля с автоинкрементом.

siv1987:
а все остальное отрабатывает идеально

все, конечно, зависит от конкретной ситуации, но избыточные ключи - зло, стоит проверить как и когда они используются, так ли они необходимы.

siv1987
На сайте с 02.04.2009
Offline
427
#19
alexspb:
уникальный айди детали ищет,

Уникальный ид для кого уникальный, для ТС'а или для mysql? А если это не уникальный индекс, или вообще не индекс? Кто-то только сказал что будет смешно если окажется что это праймери кей. А если там селект типа select * from? А если там еще какой-то гк который отрабатывает в цикле?

Лично у меня такое чувство, что избыточность ключей в данном случае стоит рассматривать в последнем случае, только после приведения структуры таблицы и плана выполнения инсерт

alexspb
На сайте с 14.11.2005
Offline
187
#20
siv1987:
Уникальный ид для кого уникальный, для ТС'а или для mysql?

ТС исчез и нам остается гадать.

Конечно, со структурой таблицы планами выполнения запросов было бы лучше.

Возможно, что ТС не совсем понимает смысл слов "уникальный", "первичный ключ" и т.п. Потому он и обратился. Может после обсуждения найдет время почитать мануалы.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий