I am building a social networking site. i hope for some high traffic in it. i am using php and mysql in it. i already started with RDBMS kind of database. I read that many high traffic sites use key value database model. In my situation which one should i go for ? and i guess it would be better to decide it at this early stage itself
usage of database model for my site
77 Views Asked by dev At
2
There are 2 best solutions below
3
Vish
On
I think it would be good if you had the key value tables for relationships between friends. For example person a could have 500 friends and person b could have 100. That means that to prevent duplicated data being copied over and over again in one table, you would get the id of the person one and id of the his friends and put them in a table. This will result in faster searches and inserts and updates because your are working with integers.
E.g
table friends_relationship id - friend 1 - 2 1 - 3 2 - 4 3 - 4
you need to make sure that the relationships are unique
Related Questions in PHP
- Meteor: How to save files with 'submit form' instead of 'change' events
- Meteor MapReduce Package Error: A method named is already defined
- how to resolve the 'unknown provider' angular injectr error when adding third party angular directives to angular-meteor app
- Meteor: get template name in spacebars
- What are the benefits of using the fields option when querying in Meteor
- Why are numbers being inserted into MongoDB incorrectly?
- iron:router check if route loaded with history.back
- How to get auto-completion for meteor API working on Visual Studio?
- Is there a manual way of telling Spiderable to consider the page “ready”?
- android sdk install error EPIPE
Related Questions in MYSQL
- Meteor: How to save files with 'submit form' instead of 'change' events
- Meteor MapReduce Package Error: A method named is already defined
- how to resolve the 'unknown provider' angular injectr error when adding third party angular directives to angular-meteor app
- Meteor: get template name in spacebars
- What are the benefits of using the fields option when querying in Meteor
- Why are numbers being inserted into MongoDB incorrectly?
- iron:router check if route loaded with history.back
- How to get auto-completion for meteor API working on Visual Studio?
- Is there a manual way of telling Spiderable to consider the page “ready”?
- android sdk install error EPIPE
Related Questions in RDBMS
- Meteor: How to save files with 'submit form' instead of 'change' events
- Meteor MapReduce Package Error: A method named is already defined
- how to resolve the 'unknown provider' angular injectr error when adding third party angular directives to angular-meteor app
- Meteor: get template name in spacebars
- What are the benefits of using the fields option when querying in Meteor
- Why are numbers being inserted into MongoDB incorrectly?
- iron:router check if route loaded with history.back
- How to get auto-completion for meteor API working on Visual Studio?
- Is there a manual way of telling Spiderable to consider the page “ready”?
- android sdk install error EPIPE
Related Questions in KEY-VALUE
- Meteor: How to save files with 'submit form' instead of 'change' events
- Meteor MapReduce Package Error: A method named is already defined
- how to resolve the 'unknown provider' angular injectr error when adding third party angular directives to angular-meteor app
- Meteor: get template name in spacebars
- What are the benefits of using the fields option when querying in Meteor
- Why are numbers being inserted into MongoDB incorrectly?
- iron:router check if route loaded with history.back
- How to get auto-completion for meteor API working on Visual Studio?
- Is there a manual way of telling Spiderable to consider the page “ready”?
- android sdk install error EPIPE
Related Questions in HIGH-TRAFFIC
- Meteor: How to save files with 'submit form' instead of 'change' events
- Meteor MapReduce Package Error: A method named is already defined
- how to resolve the 'unknown provider' angular injectr error when adding third party angular directives to angular-meteor app
- Meteor: get template name in spacebars
- What are the benefits of using the fields option when querying in Meteor
- Why are numbers being inserted into MongoDB incorrectly?
- iron:router check if route loaded with history.back
- How to get auto-completion for meteor API working on Visual Studio?
- Is there a manual way of telling Spiderable to consider the page “ready”?
- android sdk install error EPIPE
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular # Hahtags
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
For now, stick with MySQL in a traditional RDBMS format if that is what you are most familiar with. Getting your site up and running as fast as possible is WAY more important than worrying about scale issues at the 1st stages of building a site.
That being said, it doesn't hurt to keep scale concerns in mind as you design parts of the system. MySQL is already very good at some basic scaleability pieces, such as sharding, so you will probably be just fine for quite a while. Having a good DB design, with plenty of indexes, will also keep you running if you do hit sufficiently high traffic levels.
Since you expect high traffic volume (don't we all?), I would highly suggest logging / tracking the load on your server so that you can measure the actual traffic and determine if you truly do need to scale (up or out are both good options depending on the load characteristics)