How To Use the Graph API to Upload Photos to a user’s profile?

Which database is best for creating a social networking application?

  • I know this question has been asked by many other users. But i have an exact estimate of the number of users and structure of my social networking application. I want to create a social networking application in Android for my university. Maximum number of users will not be more than 10,000. For this every user will have a profile, friends, photos, posts and comments (similar features to facebook and other social networking apps) Now I am not sure which database should I use. I have searched a lot on net but couldnot came to a certain conclusion. I have worked with MYSQL before. But will MYSQL be able to hold this huge amount of data and there can be 1000 concurrent users. So will MYSQL be able to manage the load. Also I have read somewhere that POSTGRES is better than MYSQL. I have no experience of Postgres. Besides there are lots of other databases like Mongo DB, Cassandra and graph databases. Also does Android supports all the database.?? Because I want to implement it in Android. So which database should I go with??

  • Answer:

    MySQL can easily hold this data. We have implemented social graphs on it with several million profiles, each connected to many of others. Android does not have to care about which database you use, since your application will talk to your database through a backend which will be hosted in the cloud. The difference between MySQL and PostgreSQL for your scale is irrelevant. You should go with what you are familiar with. I have had good experience with Amazon AWS for the backend infrastructure service. Many world class websites, including Quora are built on AWS. If you choose to go that route, you can store your photos and other attachments in S3 and everything else in the database itself. For the database, you can use RDS, a hosted MySQL solution provided by AWS that works really well.

Sujoy Gupta at Quora Visit the source

Was this solution helpful to you?

Other answers

If you don't want to reinvent the wheel, check out PHPFOX which uses MySQL and has an Android app already built.

Edwin McGusty

Totally agree with Sujoy here. However I would also like to add few points: You don't implement the databases on the device, you will need to implement back-end for that. Now for the back-end: you can go for Amazon servers or other VPS service providers. We have observed that Linode fares better when it comes to pure database performance. However if other features are important to you, then Amazon EC2 is the clear winner. If you plan to use location information with social, go for PostgreSQL. They have awesome GIS plugins and you would need that for spatial queries. When designing the databases, instead of normalization look at the output format and performance optimization. Often we normalize the databases, and we manage to create the complex queries to extract the data, However complex queries will take eternity to complete for large datasets.   Hope you do well. All the best.

Hemant Shinde

Related Q & A:

Just Added Q & A:

Find solution

For every problem there is a solution! Proved by Solucija.

  • Got an issue and looking for advice?

  • Ask Solucija to search every corner of the Web for help.

  • Get workable solutions and helpful tips in a moment.

Just ask Solucija about an issue you face and immediately get a list of ready solutions, answers and tips from other Internet users. We always provide the most suitable and complete answer to your question at the top, along with a few good alternatives below.