2013-06-11 2 views
4

Например, таблица MySQL для счетов-фактур (дата, сумма, имя покупателя и т. Д.).MySQL SELECT (много раз) или SELECT один раз, а затем использовать массив как переменную

Пользователь хочет выбрать (отображение/эхо) счета-фактуры, выпущенные за один конкретный месяц (например, апрель).

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

Я предполагаю, что есть 2 варианта:

1) на каждом запросе сделать MySQL SELECT, и получать необходимые данные, или

2) только один MySQL SELECT, и выборки; создать массив с извлеченными результатами; затем использовать/обрабатывать массив

Вопрос: какой вариант будет лучше для производительности? Многие MySQL SELECT используют серверные ресурсы; но, с другой стороны, для сохранения в памяти массив также использует ресурсы. Какой вариант использует меньше ресурсов?

+0

Вы правильно определили плюсы и минусы каждого подхода. Что «лучше» будет зависеть (по крайней мере) от имеющихся ресурсов и объемов данных. Почему вы не сравниваете оба подхода и не решаете для себя, что лучше всего в вашем случае? – eggyal

+0

Для # 2, где вы планируете хранить полученные данные между запросами? HTTP является апатридом ... –

+0

@ Álvaro G. Vicario ... да, кажется, я недостаточно думал. Я думал использовать foreach для создания массива как переменной; Да, при следующем нажатии созданная переменная «исчезает» или должна использовать сеансы. Хорошо, спасибо за советы. Теперь ясно, что более разумно делать SELECT по каждому запросу. – user2466952

ответ

1

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

Если вы обрабатываете большие наборы, то выбирайте их в кусках, а не в строке. Извините - не PHP-эксперт, поэтому не может быть уверен в точном термине для PHP, но я думаю, что mysql_fetch_assoc - это то, что вам нужно.

0

зависит от того, сколько данных вы должны получить из базы данных для всех счетов-фактур месяца. Но я обычно использовал бы запрос MySQL, фильтрующий результаты. Запросы Mysql намного быстрее и лучше оптимизируются при фильтрации результатов, чем при использовании php.

Смежные вопросы