I have lengthy been perplexed through the speed of stackoverflow and just how rapidly the questions/comments strain on the page. It appears such as the after sales db that stores all this info could be humongus...How is it feasible for any question and every one of its connected solutions to obtain loaded so rapidly?
I have never labored inside a large-scale db atmosphere before (my background is small-business db like Access, some MySQL)...but I'd think of the after sales db for stackoverflow (simplified) is one thing like two tables linked by an indexed key, right? Something similar to:
Question Table: Question_PrimaryKey QuestionText
Answer Table: Answer_PrimaryKey Question_ForeignKey AnswerText
(linked at Question_PrimaryKey &lifier Question_ForeignKey).
Shall We Be Held way off in thinking this is the way a website like stackoverflow is to establish? If that's the case, how on the planet would be the solutions to those questions fetched so rapidly and set right through to the browser? (it blows my thoughts, because after i build small intranet sites which use Access like a after sales, the performance really begins to deteriorate once the db develops).
Any input could be greatly appreciated. Interesting time!
Good web performance clearly is dependent on the sleek and well updated database, but it's more related to caching - essentially storing frequently utilized data in memory, instead of need to pull it from the database on every request.
This blog publish discusses SO's architecture.
Within an very simplified way, yes the after sales is going to be like this, although the schema could be more complex including more table and associations.
StackOverflow uses SQL Server 2008 which, while similar people to gain access to, is on another level when it comes to sophistication and gratifaction. So far as databases go, they do not get much worse than access (someboday will most likely correct me on that).
The performance is excellent, but that'll be the effect of a large amount of performance tuning, carefully optimized queries, indexes, schema, partitions etc, together with lots of caching.
It is the return of Shaun Atwood. He and also the team happen to be making a whole lot speed optimizations to Stackoverflow recently. What tools could they be using? What types of speed enhancements could they be seeing, and what else could you do in order to exploit their experience?
And, from the hardware architeture perspective: High Scalability - Stack Overflow Architeture
This website really supplies a dump from the data. You are able to have a look to determine what it is come up with.