Вопрос для начинающего студента: создание бэкэнда в стиле stackoverflow так же просто, как 2 дБ таблицы? - PullRequest
4 голосов
/ 09 января 2010

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

Раньше я никогда не работал в крупномасштабной среде БД (у меня опыт работы с БД для малого бизнеса, например, с Access, немного MySQL) ... но я думаю, что внутренняя база данных для stackoverflow (упрощенная версия) - что-то вроде двух таблицы, связанные индексированным ключом, верно? Что-то похожее на:

Таблица вопросов: Question_PrimaryKey | QuestionText

Таблица ответов: Answer_PrimaryKey | Question_ForeignKey | AnswerText

(связано с Question_PrimaryKey & Question_ForeignKey).

Неужели я не думаю, что так настроен такой сайт, как stackoverflow? Если да, то как же ответы на эти вопросы извлекаются так быстро и передаются в браузер? (это поражает воображение, потому что, когда я создаю небольшие сайты в интрасети, использующие Access в качестве бэкэнда, производительность действительно начинает ухудшаться с ростом базы данных).

Любой вклад будет принята с благодарностью. Спасибо за ваше время!

Ответы [ 4 ]

3 голосов
/ 09 января 2010

Оптимизация вашего сайта с Джеффом Этвудом и Stackoverflow

Это возвращение Джеффа Этвуда. Он и его команда в последнее время много оптимизируют скорость для Stackoverflow. Какие инструменты они используют? Какие улучшения скорости они видят и что вы можете сделать, чтобы использовать их опыт?

И, с точки зрения аппаратной архитектуры: Высокая масштабируемость - Архитектура переполнения стека

3 голосов
/ 09 января 2010

Хорошая веб-производительность, очевидно, зависит от упорядоченной и хорошо настроенной базы данных, но это больше связано с кэшированием - в основном это хранение часто используемых данных в памяти, а не извлечение их из базы данных при каждом запросе.

В этом блоге рассказывается об архитектуре SO.

2 голосов
/ 09 января 2010

Чрезвычайно упрощенно, да, бэкэнд будет таким, хотя схема будет более сложной, включающей больше таблиц и связей.

StackOverflow использует SQL Server 2008, который, хотя и во многих отношениях похож на него, находится на совершенно новом уровне с точки зрения сложности и производительности. Что касается баз данных, они не становятся намного хуже, чем доступ (возможно, кто-то исправит меня в этом).

Производительность очень хорошая, но это будет результатом большой настройки производительности, тщательно оптимизированных запросов, индексов, схем, разделов и т. Д., А также большого кеширования.

1 голос
/ 09 января 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...