Сколько полей слишком много при запросе MySQL? - PullRequest
1 голос
/ 06 августа 2010

Я много раз читал, что мы должны избегать чтения слишком большого количества полей при запросах MySQL (или любой базы данных) ... просто запросите нужные вам поля.

Однако у меня есть проект, в котором таблица имеет 100 полей на запись / строку.

Дело в том, что каждый раз, когда я запрашиваю базу данных, мне нужны ВСЕ поля для дальнейших вычислений и т. Д. После выполнения запроса.

Со временем у меня будет около 200 пользователей, которые будут использовать один и тот же запрос / таблицу. На данный момент я провел несколько непрерывных тестов сразу на 3 компьютерах, постоянно запрашивая базу данных, и проблем с производительностью не возникает вообще, все данные запрашиваются за доли секунды. Также обратите внимание, что запросы во многих случаях одинаковы (все пользователи запрашивают одно и то же), поэтому кеш запросов сильно поражен ..

Но меня беспокоит, когда все пользователи (+200) в связанных и проектах находятся в производстве, у меня начнутся проблемы с производительностью.

Итак ... вопрос, это 100 полей слишком много для запроса?

Можно ли использовать SELECT * ... или будет SELECT field1, field2, field3 ... и т.д. быстрее?

Я не знаю, как "симулировать" 200 пользователей, запрашивающих одновременно ... какие-нибудь идеи?

спасибо

Ответы [ 2 ]

3 голосов
/ 06 августа 2010

Некоторые идеи можно найти здесь .

Если у вас 200 пользователей, вы, вероятно, не сильно пострадаете, если они не решат действовать согласованно. Тем не менее, я бы, вероятно, спросил, действительно ли мне нужно 100 полей или можно ли нормализовать базу данных. Если это то, что вам нужно, то это то, что вам нужно.

0 голосов
/ 06 августа 2010

Я скромно полагаю, что вам нужно изучить нормализацию базы данных.Вы можете разделить эту запись.

http://en.wikipedia.org/wiki/Database_normalization

http://databases.about.com/od/specificproducts/a/normalization.htm

MySQL конкретно.

http://dev.mysql.com/tech-resources/articles/intro-to-normalization.html

Такжесчитается плохой формой использовать "select *" в рабочем коде.Лично, если мне действительно нужно каждое поле, я использую его.YMMV.

HTH

Исходя из вашего комментария, что вы не можете разбить запись: изучите SQL "Соединения" и "подзапросы".Вы будете любить их.: -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...