Improve the performance of your MySQL Server

     

Coping With a Rebound Headache
Category:
 

Can Pregnancy Occur Even After You Have Had A Vasectomy?
Category:
 

Small Business Loans: For Garnering Big Profits
Category:
 

Lures For Crappie Fishing:So Many To Choose?
Category:
 

Credit Cards Bad Credit: Don't Let Your Bad Credit Deprive You
Category:
 

How a Mutual Fund Works
Category:
 

Buy Some Time - With a Payday Loan Online
Category:
 

Formal Dress For Women - Looking Stylish At The Office
Category:
 

Eliminate Worry
Category:
 

Fast Payday Loans: for Your Fast Financial Needs
Category:
 

Factors To Consider Before Subscribing To Direct TV
Category:
 

5 Tips On How To Create Prosperity Without Money!
Category:
 

Professional Indemnity Insurance: a safety cover for professiona...
Category:
 

Do you know about the Affiliate E-book marketing?
Category:
 

Let Infrared Saunas Rescue Your Body From Being a Junk Yard of T...
Category:
 

The Evolution of God
Category:
 

Do You Follow a Good Internet Marketing Strategy
Category:
 

Social Networking for Network Marketers: The New Era
Category:
 

How To Bulletproof Your Career!
Category:
 

Dedicated Server Web Hosting
Category:
 

Functions Of Magnetic Jewelry
Category:
 

Do you know this Vehicle? SUV: Rollover Risks and Concerns
Category:
 

3 Fat Loss Secrets
Category:
 

Easy-to-Use Tips for Microsoft Front Page
Category:
 

Equity Release Mortgage Is A Custom-Designed Scheme For the Old ...
Category:
 

Potential Risks of Free On Line Dating
Category:
 

No credit check private student loans: good to avail best educat...
Category:
 

Bush Meets Business Leaders On Lebanon Aid
Category:
 

Fast Cash Advance: Fast Money in Your Pocket
Category:
 

What do you Want ?
Category:
 

What and How to Promote Your Business - Printing Company Print A...
Category:
 

6 Secrets to Saving Time and Money With This Year's Christmas Gi...
Category:
 

Islamist Militia in Somalia Fires on Protesters, Killing at Leas...
Category:
 

Spanish Made Easy - Unlock Your Hidden Knowledge. Part 1
Category:
 

Experience is a Great Motivator
Category:
 

Self Hypnosis as a Personal Problem Solving Tool
Category:
 

For Copywriters Only: A Guaranteed Way to Eliminate Writer’...
Category:
 

Green Tea Extract
Category:
 

General: US Must Check Capability After Chinese Anti-Satellite T...
Category:
 

Israeli Strike Kills Palestinian Girl, Hamas Mortar Kills Israel...
Category:
 

Create Wealth Today
Category:
 

5 Basic Tips that Can Increase your Systems Speed and Performanc...
Category:
 

Palestinian Police and Hamas Gunmen Clash in Gaza
Category:
 

Is Good Enough, Really Good Enough?
Category:
 

How Online Marketing Boosts Real Estate Sales
Category:
 

China's Hu Makes Morocco First Stop on African Tour
Category:
 

The evolution of the horror genre
Category:
 

Calling All Event and Meeting Planners: Success and Productivit...
Category:
 

Over Compulsive Disorder - Driven To Despair
Category:
 

Forex Charting - Getting Started in Forex Charting the Basics
Category:
 

Are Acne Herbal Remedies Really Effective
Category:
 

At Least 8 Palestinians Killed in Israeli Raid, Airstrike in Gaz...
Category:
 

Anti-Aging and Botox Alternatives by Carson Danfield
Category:
 

Free Forex Training and the Currency Exchange Business
Category:
 

HTML Web Template Options
Category:
 

Top 9 Mortgages Explained! Find The Mortgage That is Right For Y...
Category:
 

Confused About Some Mortgage Terms? Don't Be! Read On To Get You...
Category:
 

Homeowners Insurance Company: How To Choose One
Category:
 

Secured loan at low interest rates
Category:
 

How to Financially Prepare for Your First Home
Category:
 

Carter Says Obama Should Not Pick Clinton as Running Mate
Category:
 

Bankruptcy Alternatives - 5 Ways to Avoid Bankruptcy
Category:
 

Importance of Loan Officer Network
Category:
 

What is Consumer Debt Collection Software
Category:
 

Loan Officers : upcoming demand
Category:
 

Cards For People With Bad Credit Helps You Spend Within Your Fin...
Category:
 

Top 5 Things Not to Do When You Apply For Your Mortgage!
Category:
 

Mortgage Leads for New Loan Officers
Category:
 

"SECURED LOAN UK": prevention is better than cure
Category:
 

Guaranteeing a loan: Bad credit? ....join the clan!
Category:
 

Buy Property Abroad - To Close A deal RIGHT AWAY Is Not The Righ...
Category:
 

Home Loan Officer
Category:
 

Effects of Stress
Category:
 

You Know, Bad Credit is OK, Really!
Category:
 

Refinancing is Worthwhile Under These 5 Conditions
Category:

       

Improve the performance of your MyS Computers article

Improve the performance of your MySQL Server

MySQL is a rock solid, lighting fast database server which has been designed for two factors speed and performance.

By Mukul Gupta
Category: Computers

Submit your Recipes Here!

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.

Server Factors

Everything done correctly, there still may be some server factors that may be causing the system to be slow. These are:

1. Hardware related 2. Server configuration related

Here is what you can do about the hardware:

1. The more RAM is on the system the better it is. MySQL frequently fetches data from the RAM and more the RAM is on the system, the better it is.

2. Buy the fastest possible RAM! A slower RAM is just irony.

3. Once you are settled with the RAM size and speed, look for processing speed. MySQL can use multiple processors.

Once you are satisfied with the hardware, there are a set of variables in “my.cnf” that you must look at:

a) key_buffer_size: This describes the memory available to store the index keys. The default is 8 MB but you can set it to 25% of the RAM.

b) query_cache_size: This value is by default 0. if you have a lot of repeating queries like in reporting applications etc, make sure you set this value high.

c) table_open_cache: This determines the number of table descriptors that MySQL will keep in the cache. The default value is 64. But, if you have 100 users accessing a table concurrently then this value should atleast be 100. You also have to take into considerations joins etc. Thus, this value should also be kept high.

I hope this article will take one step further in unlocking the mystery of slow servers and help solve some of the problems.

About Author:

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