This is an interesting subject area.

In a data warehousing environment, one tends to adopt table structures such
as snowflake layouts which lead to improved performance.

Createing a perfect normalised database design may well lead to performance
issues. The more joins you have, by far the worse the performance. You may
need to consider horizontal or vertical table splits. You may need to
consider replicating certain data in child tables to avoid joins.

I am not saying you do not need to carry out data analysis and gain a full
and first hand understanding of the data structures. It is just that when it
comes to online performance, sometimes you have to break the rules.


-----Original Message-----
From: Sujay Koduri [mailto:[EMAIL PROTECTED]
Sent: 22 September 2005 09:58
To: Ian Sales (DBA); [EMAIL PROTECTED]
Cc: mysql@lists.mysql.com
Subject: RE: good database design



My 2 cents..

Before you actually start worrying about the performance tuning of database
parameters or hardware required for the DB, you should make sure that you
have designed the database properly by taking care of all aspects  like
normalisation, denormalisation (??). If you don't take care of these logical
design aspects in the early stages properly, these things will prove you
very costly in the long run.

Th easy and recommended way to do it is

.Draw an E-R diagram
.Do any normalization.
.Identify proper datatypes for the table creation.
.Identify and add proper indexes.
.And now actually you should start worrying abt the DB Tuning and harware
requirements.

sujay

-----Original Message-----
From: Ian Sales (DBA) [mailto:[EMAIL PROTECTED]
Sent: Thursday, September 22, 2005 2:17 PM
To: [EMAIL PROTECTED]
Cc: mysql@lists.mysql.com
Subject: Re: good database design

Tim Hayes wrote:

>I disagree completely.
>
>I prefer to have regard to the statement of requirement, which in this
>case is a concern over performance. If following conventional design
>rules creates performance issues, then performance related issues come
>first when considering design.
>
>
>
- personally, I would consider integrity, and then reliability, above
performance. But then 80% of any performance hit is in the application code.
Design a database that gives you confidence in the data it stores first and
foremost.

- ian

--
+-------------------------------------------------------------------+
| Ian Sales                                  Database Administrator |
|                                                                   |
|                              "All your database are belong to us" |
| ebuyer                                      http://www.ebuyer.com |
+-------------------------------------------------------------------+


--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]



-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to