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
84 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
- php Variable name must change in for loop
- register_shutdown_function is not getting called
- Query returning zero rows despite entries existing
- Retrieving *number* pages by page id
- Automatically closing tags in form input?
- How to resize images with PHP PARSE SDK
- how to send email from localhost using codeigniter?
- Mariadb max Error while sending QUERY packet PID
- Multiusers login redirect different page in php
- Imaginary folder when I use "DirectoryIterator" in PHP?
- CodeIgniter + XDebug: debug only working in the main controller, index() function
- PHP script timeout when I use sleep()
- posting javascript populated form to another php page
- AJAX PHP - Reload div after submit
- PHP : How can I check Array in array?
Related Questions in MYSQL
- MySQL Select Rank
- When dealing with databases, does adding a different table when we can use a simple hash a good thing?
- Push mysql database script to server using git
- Why does mysql stop using indexes when date ranges are added to the query?
- Google Maps API Re-size
- store numpy array in mysql
- Whats wrong with this query? Using ands
- MySQL-Auto increment
- show duplicate values subquery mysql
- Java Web Application Query Is Not Working
- microsoft odbc driver manager data source name not found and no default driver specified
- Setting foreign key in phpMyAdmin
- No responses from google places text search api
- Adding to MAMP database in SQL/PHP
- I want to remove certain parent- and child-divs in all my wordpress posts with php or some other script
Related Questions in RDBMS
- Hierarchical RDBMS Query spanning across multiple tables with in clause
- Why I can't perform this simple insert operation? How can I solve this date format issue?
- How to import only new data by using Sqoop?
- Making relational algebra equations in a sample database
- adding a where condition for one criteria in sql query
- What happens to sql views, if database is moved to another server
- Why I can't perform this insert query if a specific field value is set to null?
- Star schema role in the Pentaho Mondrian OLAP server
- Can Rails deal with DB uniqueness without index?
- Max. number of subqueries with WHERE clause in MySQL
- How to maintain author order in database of citations
- What is the difference between a Technical key and a Surrogate key?
- Why django group by wrong field? annotate()
- mysql: Get combination of data from multiple table by passing multiple value
- How to organize data in document based stores?
Related Questions in KEY-VALUE
- Angular - show key match with value
- How can I perform search on a lookup table without loading it in memory?
- Does Consul persist the Key Value store?
- functioning of (== ) in terms of hashCode
- How to update one element of an array according to a condition on another element?
- How to parse multi line value from config file
- Search for key in Map when the values are in ArrayList
- Pyspark Array Key,Value
- Join master table's data to a key/value table data in one SELECT
- How to push an object into an array which is the value in a key/value pair in php
- Matching JSON keys to class fields inexactly
- C++, How to use maps for holding multiple integer values
- Add a new list item to a Key value database
- Cassandra is Column oriented or key value store?
- Updating Hash value in Ruby
Related Questions in HIGH-TRAFFIC
- Create a Linux packet splitter
- PHP MongoDB driver opens many connections on slow query
- Dealing with huge traffic - online ticket website
- I need suggestions for large-scale web site
- How to serve cached ruby apps from nginx rather than unicorn?
- High Speed Internter can fight against Ddos Attack
- Hosting questions for a "high" traffic rails application
- How not to be labelled as a spammer by Google when using GMail as a mail server?
- Apache 2.4 php 7.2 Apache ( php module) increase max connections to handle 10000
- High traffic - Multiple requests to set same memcached key?
- Handle concurrent requests to update the resources
- PHP JpGraph -- dynamic image creation in same directory for multiple users
- Why always "Invalid argument supplied for foreach"
- High traffic spikes on certain images, serve these from Amazon S3?
- How to architect a video site, from a performance point of view
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 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)