Я занимаюсь проектированием CMS от другого программиста. По мере заполнения сайта мы находим петли в запросах mysql, вызывающих длинные зависания. Я нашел временное решение для этого, но мне интересно, есть ли более быстрый способ сделать это?
возьмите таблицу (ресурсы треков):
id resource click
1 res_1 192
2 res_2 12
3 res_3 300
нам нужно получить популярность ресурса - res_click/total_click у него был цикл while:
while ($item = mysql_fetch_array ($result)) $total_clicks = $total_clicks + $item[0];
Поскольку на странице может быть 100 или более ресурсов, это было запущено для каждого ресурса, и это вызывает серьезные зависания.
Мое решение - получить сумму:
SELECT SUM(click) FROM uri
SELECT click FROM resource WHERE id=$x
затем разделите их оба. Но эти два вызова по-прежнему работают около 100 элементов на странице. Есть ли способ, которым я могу иметь поле в mysql, которое является результатом формулы, основанной на другой, например, в excell? Поэтому я могу добавить поле "процент", сказать mysql, что это сумма кликов, деленная на текущее значение клика, а затем каждый раз, когда клик обновляется, поле "процент" автоматически обновляется?
любая помощь будет оценена, приветствия;)
вы можете создать view в своей таблице, в котором представлена сумма, которую вы хотите