Задать вопрос
@alekseivanov

Как повторить фид вк?

Я хочу скопировать функции вконтакта, создал странички и группы.
При этом каждая страничка и группа использует отдельную таблицу в базе данных.

Я хотел сделать sql-запросы вроде "SELECT * from group1, group2 ORDER by date limit=10 ", но оказывается функционал выбора из нескольких таблиц таков, что результатом являются "склеенные" строки, что конечно совсем мне не нужно.

Можно ли осуществить выбор из нескольких таблиц так, чтобы результатом были несклеенные, перемешанные строки?

Если да -- то как.

Если нет -- то, что как можно реализовать эту функцию другим путём?
Записывать вообще все посты на сайте в одну таблицу?
Не будет ли тогда слишком большой размер таблицы тормозить sql-запросы?
Потому что я думал, что лучше 10 000 таблиц с 10 000 строками, чем таблица с 100 000 000 строками.
  • Вопрос задан
  • 189 просмотров
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
rinat_crone
@rinat_crone
Chef Technical Officer
Я, конечно, желаю Вам роста, но врядли у Вас будет 100 000 000 записей в одной табличке в обозримом будущем (не логи ж там храните, ну). Поэтому не занимайтесь преждевременной оптимизацией, используйте одну таблицу в адекватной БД (рекомендую PostgreSQL) и правильные индексы. Это решит все Ваши проблемы с выборками и освободит время для развития продукта.

Успехов!

P.S. Храним миллионы записей, неразрешимых проблем или проблем масштабирования в будущем не видим.
Ответ написан
Комментировать
index0h
@index0h
PHP, Golang. https://github.com/index0h
Никогда не используйте SELECT *. Жестко указывайте, что и как вы хотите получить. Рекомендую управляющие конструкции писать не как попало, а в UPPER CASE.

Не будет ли тогда слишком большой размер таблицы тормозить sql-запросы?

Если не будете делать запросов с глупостями в стиле ORDER BY RAND(), и правильно пропишете индексы - проблемы быть не должно.

Потому что я думал, что лучше 10 000 таблиц с 10 000 строками, чем таблица с 100 000 000 строками.

Об этом имеет смысл задумываться только если стоит задача горизонтального масштабирования.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы