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 answers
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
- How to add the dynamic new rows from my registration form in my database?
- Issue in payment form gateway
- How to create a facet for WP gridbuilder that displays both parent and child custom fields?
- Function in anonymous Laravel Blade component
- How to change woocomerce or full wordpress currency with value from USD to AUD
- General questions about creating a custom theme Moodle CMS
- How to add logging to an abstract class in php
- error 500 on IIS FastCGI but no clue despite multiple error loggings activated
- Composer installation fails and reverts ./composer.json and ./composer.lock to original content
- How to isolate PHP apps from each other on a local machine(Windows or Linux)?
- Laravel: Using belongsToMany relationship with MongoDB
- window.location.href redirects but is causing problems on the webpage
- Key provided is shorter than 256 bits, only 64 bits provided
- Laravel's whereBetween method not working with two timestamps
- Implementing UUID as primary key in Laravel intermediate table
Related Questions in MYSQL
- How to Retrieve Data from an MySQL Database and Display it in a GUI?
- How to change woocomerce or full wordpress currency with value from USD to AUD
- window.location.href redirects but is causing problems on the webpage
- Error: local variable 'bramka' referenced before assignment
- Products aren't displayed after fetching data from mysql db (node.js & express)
- status table for all entries (even in different dates) in database changing value when all checkboxes are checked
- Can't Fix Mariadb & Mysql ERROR 2002 (HY000): Can't connect to local server through socket '/tmp/mysql.sock' (2) On MacOs
- Express Mysql getting max ID from table not working cought in a promise
- failed to upload a table from sql file
- Update a MySQL row depending on the ID in Google Sheets Apps Script
- Use row values from another table to select them as columns and establish relations between them (pivot table)
- SQL: Generate combination table based on source and destination column from same table
- How to display the column names which have only unique non-null values in MySQL table?
- mysql query takes too long because of wrong indexes usage
- Multitable joining in Sql
Related Questions in RDBMS
- Prisma Many to Many relationship with at least one value
- Precedence of operators in SQL
- How do I create columns that add a tag if it matches with a keyword from a different dataset?
- Does replacing string column with repeating values at some point with an int FK have any performance benefits in RDBMS?
- How will Spring boot work with Sql Response?
- How to replicate the "Script as Create" functionality from Azure Data Studio in python using pyodbc?
- How to properly connect GCP Cloud Functions with Relational Databases
- Unable to run pg_buffercache_pages() function
- Does it make sense to continue looking for comparison table where I could see the difference between completely different DB types?
- Extracting values from JSON list
- Difference between local, session and shared preload library in PostgreSQL and use of LOAD command
- Google Android Management API - mapping Map<K,V> fields
- What is the design logic for postgresql to not provide the construct as 'create database IF NOT EXISTS dbname'?
- RDBMS Many To Many Relationships Django
- How many entity tables should I have? User table attribute role or three tables for the roles?
Related Questions in KEY-VALUE
- Python - Converting Date:Price list to new rows
- Awk print a value in a column that corresponds to key values
- Convert element tags to key value pair in OIC map
- How would I make an "object" (key-value pair) in C++?
- How to list all entries in Deno KV?
- Create new array using values from another array
- How to combine items from a Dictionary into a list of dictionaries based on matching key/value details
- Object property has different many string values
- Using jsonlite in R to output json in a specific format
- Output of a multidimensional array as a grouped key=>value list
- Keys and values in separate columns, I want to create columns with corresponding values
- How is the Foldable instance of (,) useful?
- Database Design for storing Key-Value Tags per Item
- Python error occurred during crontab scheduled launch
- extract correlations of sub-sets of genes based on a key -> value data frame
Related Questions in HIGH-TRAFFIC
- Laravel rate limit using authenticated user tps(transactions per second)
- Handling Blocking External API Calls in Django
- Handle concurrent requests to update the resources
- Hazelcast causing heavy traffic between nodes
- Can we use hibernate in a high traffic multi tenancy cloud application?
- Is there a way to configure Spring Boot API to set connection timeout for incoming request?
- Apache 2.4 php 7.2 Apache ( php module) increase max connections to handle 10000
- Why always "Invalid argument supplied for foreach"
- MySQL Connection Error on heavy load with wordpress site
- Low download speed
- Django shows Python socket.error: [Errno 104] Connection reset by peer
- Hosting/Server for high traffic website
- High traffic connection between Php and Redis
- Laravel for complex browser game website
- Nodejs - High Traffic to Clustered Microservices Problems
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?
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)
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)