Сойти с макушки головы, так что здесь может быть какой-то плохой синтаксис. Должно быть достаточно, чтобы дать вам представление о том, как вы могли бы правильно решить проблему самостоятельно:
import itertools
def quads(n, required_results=None):
arr1, arr2 = range(1,n+1), range(1,n+1)
results = set() # only admits unique combinations
for combination in itertools.product(arr1, arr2):
results.add(combination)
if required_results and required_results = len(results):
# if the second argument is passed, no need to go through the whole combination-space
break
return results
40-50 хитов в день являются очень маленькими, и SQLLite может использоваться без любой проблемы.
MySql мог бы быть лучше, после того как Вы получите более хит, потому что он обрабатывает лучшим способом несколько связь (блокировка не является тем же с MySql и SqlLite).
Так как Вы уже используете соответствующую базу данных, я не вижу оснований для миграции на меньшее.
В то время как sqlite мог бы отлично соответствовать, также - изменяющийся на менее - способная платформа от более - способный не кажется лучшим выбором :)
Основной проблемой с sqlite является параллелизм. Если Вы ожидаете 40-50 хитов в день, это - вероятно, надуманный вопрос. Однако, если та загрузка увеличения необходимо быть готовы мигрировать на демона базы данных, такого как MySQL - лучший краткий обзор база данных определенный код для создания такого переключателя максимально безболезненным.
Раздел производительности Wiki SQLite мог бы быть полезен для Вас.
SQLite будет работать просто великолепно для Вас. Это звучит, как будто Вы в основном используете базу данных в качестве только для чтения (со случайными записями для обновления содержания). SQLite выделяется в этом виде схемы доступа. Единственное место, где SQLite дросселирует, - когда у Вас есть много записей к базе данных, потому что, после того как процесс пытается записать, что файл заблокирован, пока запись не завершена. Кроме того, если Вы делаете много записей (как обновление строк в цикле), необходимо изучить помещение всех тех записей в транзакцию - в то время как файл заблокирован, после того как транзакция поражает запрос записи, сами обновления занимают намного меньше времени, потому что они записаны в файл сразу и весьма отдельным образом.
SQLite был бы хорошо для этого уровня трафика. Это на самом деле работает вполне хорошо, единственная вещь, в которой это испытывает недостаток, кэшируется данных и запрашивает, потому что это нужно вращать каждый раз, когда к Вашей странице получают доступ. Тем не менее это все еще очень быстро, и не должно быть слишком трудно мигрировать на MySQL позже в случае необходимости.