Skip to main content
Removed spaces around parens (make for bad line breaks) and other small fixes
Source Link

MYSQL Social Networking website - Database Design  , Data Growth and Hardware

I have a system around one million users (community based). It has around 6000 groups ( fixedfixed , no change)  . But there is no discussion board for these groups yet.

We are building a discussion forum for the above groups  .Each Each group has 12 categories ( fixedfixed,never never change  )  . The discussion forum is like face bookFacebook wall  . We will have 12 facebookFacebook walls for each group ( oneone wall for one category  ).

For the above mentioned features I have 12 main tables  ( forfor each category) and 12 comments tables ( forfor each category)  . Total 24 tables.

All the tables have similar structure ( mainmain and comments table  ).

I am going to use MYSQLMySQL 5.5 and InnoDB

1) Since the data growth is 60 Million per table ( per month), Can I better create separate database for each group (6000 databases) having all the 12 tables, so in feature I don’t have to go for any partitioning or sharding . It will be straight forward in reading and writing if my code handles all the database connections well. Even for future growth (max 15 million users), I will not have any problems. But having 6000 databases, do you think any issues like for back up and for replication …?

2) For main tables and comments table is it OK to have int as ID or Can I change it to BigInt or any other suggestions?

3) Do you think my hardware is good for initial one million users for an average use? Or Am I renting too much, if so best hardware for my case, at least for first 1 years.

Thanks for Your time in reading these questions and for your answers .

  1. Since the data growth is 60 Million per table (per month), should I create a separate database for each group (6000 databases) having all the 12 tables, so in future I don't have to go for any partitioning or sharding? It will be straight forward in reading and writing if my code handles all the database connections well. Even for future growth (max 15 million users), I will not have any problems. But having 6000 databases, do you think any issues like for back up and for replication?

  2. For the main tables and comments table, is it OK to have int as an ID or can I change it to BigInt or any other suggestions?

  3. Do you think my hardware is good for initial one million users for an average use? Or am I renting too much? If so, what is the best hardware for my case, at least for first year?

MYSQL Social Networking website - Database Design  , Data Growth and Hardware

I have a system around one million users (community based). It has around 6000 groups ( fixed , no change)  . But there is no discussion board for these groups yet.

We are building a discussion forum for the above groups  .Each group has 12 categories ( fixed,never change  )  . The discussion forum is like face book wall  . We will have 12 facebook walls for each group ( one wall for one category  )

For the above mentioned features I have 12 main tables( for each category) and 12 comments tables ( for each category)  . Total 24 tables.

All the tables have similar structure ( main and comments table  )

I am going to use MYSQL 5.5 and InnoDB

1) Since the data growth is 60 Million per table ( per month), Can I better create separate database for each group (6000 databases) having all the 12 tables, so in feature I don’t have to go for any partitioning or sharding . It will be straight forward in reading and writing if my code handles all the database connections well. Even for future growth (max 15 million users), I will not have any problems. But having 6000 databases, do you think any issues like for back up and for replication …?

2) For main tables and comments table is it OK to have int as ID or Can I change it to BigInt or any other suggestions?

3) Do you think my hardware is good for initial one million users for an average use? Or Am I renting too much, if so best hardware for my case, at least for first 1 years.

Thanks for Your time in reading these questions and for your answers .

MYSQL Social Networking website - Database Design, Data Growth and Hardware

I have a system around one million users (community based). It has around 6000 groups (fixed , no change). But there is no discussion board for these groups yet.

We are building a discussion forum for the above groups. Each group has 12 categories (fixed, never change). The discussion forum is like Facebook wall. We will have 12 Facebook walls for each group (one wall for one category).

For the above mentioned features I have 12 main tables  (for each category) and 12 comments tables (for each category). Total 24 tables.

All the tables have similar structure (main and comments table).

I am going to use MySQL 5.5 and InnoDB

  1. Since the data growth is 60 Million per table (per month), should I create a separate database for each group (6000 databases) having all the 12 tables, so in future I don't have to go for any partitioning or sharding? It will be straight forward in reading and writing if my code handles all the database connections well. Even for future growth (max 15 million users), I will not have any problems. But having 6000 databases, do you think any issues like for back up and for replication?

  2. For the main tables and comments table, is it OK to have int as an ID or can I change it to BigInt or any other suggestions?

  3. Do you think my hardware is good for initial one million users for an average use? Or am I renting too much? If so, what is the best hardware for my case, at least for first year?

added per month
Source Link
Bujji
  • 143
  • 1
  • 6

Introduction

I have a system around one million users (community based). It has around 6000 groups ( fixed , no change) . But there is no discussion board for these groups yet.

Building discussion forum

We are building a discussion forum for the above groups .Each group has 12 categories ( fixed,never change ) . The discussion forum is like face book wall . We will have 12 facebook walls for each group ( one wall for one category )

Database Design

For the above mentioned features I have 12 main tables( for each category) and 12 comments tables ( for each category) . Total 24 tables.

All the tables have similar structure ( main and comments table )

CREATE TABLE `tdb_forum` ( `id` int unsigned NOT NULL AUTO_INCREMENT, group_id mediumint unsigned NOT NULL, ..... Other columns ..... ) CREATE TABLE `tdb_forum_comment` ( `id` int unsigned NOT NULL AUTO_INCREMENT, forum_id int unsigned NOT NULL , ..... Other columns ..... ) 

I am going to use MYSQL 5.5 and InnoDB

Data growth expectations

Since one million users are ready to use it immediately after launching , average 1 entry for person in main table per day and average 4 entries for person in comments table . So per month comments table reach 60 million records in month.

Hardware I am planning

Base Hardware

Intel Xeon E3-1230 (3.20GHZ 8MB Cache) 16GB DDR3 ECC Primary Disk: Hardware Raid-1 2x2000GB 7.2k RPM SATAII RE4 64MB Cache 

Additional Options

 Hardware RAID Controller : Adaptec 2405 - 128MB Cache - 4 Ports Chassis : Standard SuperMicro Rackmount Public Port Speed : 100Mbs Public Public Bandwidth : 10TB Premium Transfer IP Addresses : 8 IP Addresses Control Panel : cPanel / WHM 

Questions I have

1) Since the data growth is 60 Million per table ( per month), Can I better create separate database for each group (6000 databases) having all the 12 tables, so in feature I don’t have to go for any partitioning or sharding . It will be straight forward in reading and writing if my code handles all the database connections well. Even for future growth (max 15 million users), I will not have any problems. But having 6000 databases, do you think any issues like for back up and for replication …?

2) For main tables and comments table is it OK to have int as ID or Can I change it to BigInt or any other suggestions?

3) Do you think my hardware is good for initial one million users for an average use? Or Am I renting too much, if so best hardware for my case, at least for first 1 years.

Thanks for Your time in reading these questions and for your answers .

Introduction

I have a system around one million users (community based). It has around 6000 groups ( fixed , no change) . But there is no discussion board for these groups yet.

Building discussion forum

We are building a discussion forum for the above groups .Each group has 12 categories ( fixed,never change ) . The discussion forum is like face book wall . We will have 12 facebook walls for each group ( one wall for one category )

Database Design

For the above mentioned features I have 12 main tables( for each category) and 12 comments tables ( for each category) . Total 24 tables.

All the tables have similar structure ( main and comments table )

CREATE TABLE `tdb_forum` ( `id` int unsigned NOT NULL AUTO_INCREMENT, group_id mediumint unsigned NOT NULL, ..... Other columns ..... ) CREATE TABLE `tdb_forum_comment` ( `id` int unsigned NOT NULL AUTO_INCREMENT, forum_id int unsigned NOT NULL , ..... Other columns ..... ) 

I am going to use MYSQL 5.5 and InnoDB

Data growth expectations

Since one million users are ready to use it immediately after launching , average 1 entry for person in main table per day and average 4 entries for person in comments table . So per month comments table reach 60 million records in month.

Hardware I am planning

Base Hardware

Intel Xeon E3-1230 (3.20GHZ 8MB Cache) 16GB DDR3 ECC Primary Disk: Hardware Raid-1 2x2000GB 7.2k RPM SATAII RE4 64MB Cache 

Additional Options

 Hardware RAID Controller : Adaptec 2405 - 128MB Cache - 4 Ports Chassis : Standard SuperMicro Rackmount Public Port Speed : 100Mbs Public Public Bandwidth : 10TB Premium Transfer IP Addresses : 8 IP Addresses Control Panel : cPanel / WHM 

Questions I have

1) Since the data growth is 60 Million per table, Can I better create separate database for each group (6000 databases) having all the 12 tables, so in feature I don’t have to go for any partitioning or sharding . It will be straight forward in reading and writing if my code handles all the database connections well. Even for future growth (max 15 million users), I will not have any problems. But having 6000 databases, do you think any issues like for back up and for replication …?

2) For main tables and comments table is it OK to have int as ID or Can I change it to BigInt or any other suggestions?

3) Do you think my hardware is good for initial one million users for an average use? Or Am I renting too much, if so best hardware for my case, at least for first 1 years.

Thanks for Your time in reading these questions and for your answers .

Introduction

I have a system around one million users (community based). It has around 6000 groups ( fixed , no change) . But there is no discussion board for these groups yet.

Building discussion forum

We are building a discussion forum for the above groups .Each group has 12 categories ( fixed,never change ) . The discussion forum is like face book wall . We will have 12 facebook walls for each group ( one wall for one category )

Database Design

For the above mentioned features I have 12 main tables( for each category) and 12 comments tables ( for each category) . Total 24 tables.

All the tables have similar structure ( main and comments table )

CREATE TABLE `tdb_forum` ( `id` int unsigned NOT NULL AUTO_INCREMENT, group_id mediumint unsigned NOT NULL, ..... Other columns ..... ) CREATE TABLE `tdb_forum_comment` ( `id` int unsigned NOT NULL AUTO_INCREMENT, forum_id int unsigned NOT NULL , ..... Other columns ..... ) 

I am going to use MYSQL 5.5 and InnoDB

Data growth expectations

Since one million users are ready to use it immediately after launching , average 1 entry for person in main table per day and average 4 entries for person in comments table . So per month comments table reach 60 million records in month.

Hardware I am planning

Base Hardware

Intel Xeon E3-1230 (3.20GHZ 8MB Cache) 16GB DDR3 ECC Primary Disk: Hardware Raid-1 2x2000GB 7.2k RPM SATAII RE4 64MB Cache 

Additional Options

 Hardware RAID Controller : Adaptec 2405 - 128MB Cache - 4 Ports Chassis : Standard SuperMicro Rackmount Public Port Speed : 100Mbs Public Public Bandwidth : 10TB Premium Transfer IP Addresses : 8 IP Addresses Control Panel : cPanel / WHM 

Questions I have

1) Since the data growth is 60 Million per table ( per month), Can I better create separate database for each group (6000 databases) having all the 12 tables, so in feature I don’t have to go for any partitioning or sharding . It will be straight forward in reading and writing if my code handles all the database connections well. Even for future growth (max 15 million users), I will not have any problems. But having 6000 databases, do you think any issues like for back up and for replication …?

2) For main tables and comments table is it OK to have int as ID or Can I change it to BigInt or any other suggestions?

3) Do you think my hardware is good for initial one million users for an average use? Or Am I renting too much, if so best hardware for my case, at least for first 1 years.

Thanks for Your time in reading these questions and for your answers .

Source Link
Bujji
  • 143
  • 1
  • 6

MYSQL Social Networking website - Database Design , Data Growth and Hardware

Introduction

I have a system around one million users (community based). It has around 6000 groups ( fixed , no change) . But there is no discussion board for these groups yet.

Building discussion forum

We are building a discussion forum for the above groups .Each group has 12 categories ( fixed,never change ) . The discussion forum is like face book wall . We will have 12 facebook walls for each group ( one wall for one category )

Database Design

For the above mentioned features I have 12 main tables( for each category) and 12 comments tables ( for each category) . Total 24 tables.

All the tables have similar structure ( main and comments table )

CREATE TABLE `tdb_forum` ( `id` int unsigned NOT NULL AUTO_INCREMENT, group_id mediumint unsigned NOT NULL, ..... Other columns ..... ) CREATE TABLE `tdb_forum_comment` ( `id` int unsigned NOT NULL AUTO_INCREMENT, forum_id int unsigned NOT NULL , ..... Other columns ..... ) 

I am going to use MYSQL 5.5 and InnoDB

Data growth expectations

Since one million users are ready to use it immediately after launching , average 1 entry for person in main table per day and average 4 entries for person in comments table . So per month comments table reach 60 million records in month.

Hardware I am planning

Base Hardware

Intel Xeon E3-1230 (3.20GHZ 8MB Cache) 16GB DDR3 ECC Primary Disk: Hardware Raid-1 2x2000GB 7.2k RPM SATAII RE4 64MB Cache 

Additional Options

 Hardware RAID Controller : Adaptec 2405 - 128MB Cache - 4 Ports Chassis : Standard SuperMicro Rackmount Public Port Speed : 100Mbs Public Public Bandwidth : 10TB Premium Transfer IP Addresses : 8 IP Addresses Control Panel : cPanel / WHM 

Questions I have

1) Since the data growth is 60 Million per table, Can I better create separate database for each group (6000 databases) having all the 12 tables, so in feature I don’t have to go for any partitioning or sharding . It will be straight forward in reading and writing if my code handles all the database connections well. Even for future growth (max 15 million users), I will not have any problems. But having 6000 databases, do you think any issues like for back up and for replication …?

2) For main tables and comments table is it OK to have int as ID or Can I change it to BigInt or any other suggestions?

3) Do you think my hardware is good for initial one million users for an average use? Or Am I renting too much, if so best hardware for my case, at least for first 1 years.

Thanks for Your time in reading these questions and for your answers .