ArticleBiz.com :: Free article content
Authors: Maximum article exposure. Publishers: Reprintable article content.  
BROWSE ARTICLES
ArticleBiz.com Home
Featured Articles
Recently Added Articles
Most Viewed Articles
Article Comments
Advanced Article Search
AUTHORS
Submit Article
Check Article Status
Author TOS
PUBLISHERS
RSS Article Feeds
Terms of Service

Improve the performance of your MySQL Server
Home :: Computers & Technology :: Technology
By: Mukul Gupta Email Article
Word Count: 781 Digg it | Del.icio.us it | Google it | StumbleUpon it

  

MySQL is a rock solid, lighting fast database server which has been designed for two factors speed and performance. It is the Ferrari of databases: Light weight, fast and Built for the high speed tracks!

I still hear an awful lot of stories from owners whose databases are running two slow. In my experience, the three main places to look for problems are:

1. Faulty Database Design 2. Bad Queries 3. Server factors

Faulty Database Design

Proper database design is the single most important factor for the ensuring performance and maintainability of the database. Here is what you need to answer when designing a table: Can I reduce the size of data that each row will have? Here is what you can do:

1. Use unsigned numeric values when the application will not store negative numbers. Like the “quantity ordered” of an item in an ecommerce application is never going to be -$125.

2. Use Variable length values instead of fixed length value i.e. used varchar instead of char.

3. Do not use unnecessarily large field sizes. For most ecommerce application “unsigned smallint” is more than enough to store inventory count. A field described as “unsigned smallint” can store a max value of 65535.

4. Don’t ignore normalization; its helps prevent unnecessary repetition of data. The part B of this is, don’t overuse normalization. If the table will not grow in size significantly, there is no point in normalization. For example, if the user table has just 20 rows (i.e. 20 employees in a company), all attempts of normalization are wasted.

5. Use Keys. Don’t decide keys by “The customer id has to be indexed in the order table”. If the order table is being searched 90% of the times by “order date”, it makes more sense to index “order date”.

Remember, how a table will be used should determine how it is designed. Spending time here will save years of frustration.

Bad Queries

It sounds too good to be true but you wont believe the number of developers out there who completely suck at writing queries. There are two types of bad queries:

a) Unnecessary Queries: These are the queries that shouldn’t have been made in the first place. The only way to avoid this is asking, “Do I really need this data?”

b) Inefficient Queries: These are the queries that do not use the underlying table structure or MySQL functions in the correct way.

Here is a starting point to start looking at problem areas:

1. Unnecessary usage of “Select * “statements when the entire processing is being done on a single column. The more data is fetched from the server the more work MySQL has to do and more bandwidth it takes.

2. Using sub-query instead of a join. On a properly designed database, joins are incredibly fast. Using sub-queries just shows a lack of knowledge.

3. Improper use of Keys. This is especially valid for range checks. Remember to use the “Explain” statement to check the usage of keys and then use the “use key” statement in your “where” clauses to force key usage.

Page 1 of 2 :: First | Last :: Prev | 1 2 | Next

Mukul Gupta is the CMO of Indus Net Technologies, an India based Internet Consulting firm which specializes in Opensource solutions. You can reach him at script@script2please.com or visit http://www.script2please.com

Article Source: http://www.ArticleBiz.com

This article has been viewed 331 times.

Rate Article
Rating: 0 / 5 stars - 0 vote(s).

Article Comments
There are no comments for this article.

Leave A Reply
 Your Name
 Your Email Address [will not be published]
 Your Website [optional]
 What is eight + one? [tell us you're human]
Notify me of followup comments via email


Related Articles


Copyright © 2009 by ArticleBiz.com. All rights reserved.

Terms of Service | Privacy Policy | Contact Us | Submit Article | Editorial