У меня есть немного блокировки мозга на этом.Отметить все как прочитанные
TLDR; Как эффективно реализовать «метку как прочитанную» для миллионов элементов?
У меня есть случай маркировки всех статей, прочитанных. Десятки тысяч. Решение, которое у меня теперь работает, отлично подходит для небольшого количества статей, но оно очень и очень медленно с большими числами. Это потому, что для каждой прочитанной статьи я заполняю одну таблицу новой строкой. Не имеет значения, сделаю ли я 100 000 вставок в одной транзакции, или я вставляю в select (bla bla bla), это все еще занимает много времени. Мне было интересно переключиться на массивы postgresql, но я не уверен, как это будет работать сотнями тысяч предметов.
Любые предложения, какой будет лучший подход здесь?
У меня есть 3 таблицы:
articles
- id
- title
users
- id
- name
и таблица с отображением какой статьи данного пользователя прочитали.
read_articles
- article_id - foreign key
- user_id - foreign key
массивы postgresql на самом деле связаны списками, сложность n-квадратов будет больно. – Jasen