Опытные люди используют кеширование. Тоесть часто используемые записи кладут поближе
к приложениею (в память Python) а данные которые редко нужны - вытесняются (evict) из
памяти.
Мне сложно давать какие-то советы в данной задаче. Ты как всегда сам себе придумал
задачу хранения. И сам себе доказывай необходимость этого.
Это - медленная проверка. Она тормозит тебе весь алгоритм.
if isInDatabase(a, b, c):
continue
Вообще, если ты работаешь с чем-то очень быстрым (численный метод)
то тебе надо избегать прямой интеракции с БД.
Лучше положить этру тройку в Python-Dictionary. Так будет быстрее.
Запись в БД делай в фоновом режиме.
WITH p AS (
SELECT p.id, REPLACE(t.value, p2.name, p2.value) AS template
FROM `pages`
)
SELECT template FROM p
LEFT JOIN `templates` AS t ON (t.id = p.template)
LEFT JOIN `parts` AS p2 ON (t.value LIKE CONCAT("%{{> ", p2.name, "}}%"))
WHERE
r.id = 1;