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.
Improve Performance Of Pc
Vircert Parser is software that helps in extracting important information related to diamond industry from www.vircert.com and presents it in understandable format and this software offers information about variety of fields related to diamond industry such as shape, clarity, stocknumber, depth, price, flouresence, cutlet, symmetry, griddle etc. Vircert Parser can offer important data related to diamond industry with 100% accuracy which is tough to achieve if one uses manual method for entering data.
Vircert Parser can be helpful in growth and can also be helpful in improvement of diamond business due to its following important features:
Affordability: Vircert Parser is very affordable and its cost is only $ 29 and this is only one time investment moreover, no additional charges are attached on the usage of services of this software. In this way, Virsert Parser offers relevant data related to diamond industry at cost effective prices.
Accuracy: Vircert Parser offers accurate information related to diamond industry which can help in increasing the credibility of business of a diamond merchant.
Efficiency: Vircert Parser is highly efficient as it offers relevant data related to diamond industry in a comprehensive form.
Fast Service:Virsert parser can offer important information to diamond merchants in a very small period of time and it offers updated information
Superior Customer Service: A diamond merchant can provide better customer care service by using Vircert software as this software offers accurate and fast service related to diamond industry which can be helpful for solving the queries of customers.
In this way, Vircert Software can be really play very effective role in improving the performance of diamond business.
Both Mukul Gupta & Sudha Kaushal are contributors for EditorialToday. The above articles have been edited for relevancy and timeliness. All write-ups, reviews, tips and guides published by EditorialToday.com and its partners or affiliates are for informational purposes only. They should not be used for any legal or any other type of advice. We do not endorse any author, contributor, writer or article posted by our team.
Mukul Gupta has sinced written about articles on various topics from Software, Home Businesses and Software. 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. Mukul Gupta's top article generates over 3600 views. Bookmark Mukul Gupta to your Favourites.
Sudha Kaushal has sinced written about articles on various topics from Software. We offer Software Solutions to our global clients by leveraging process, domain and people management expertise. At econnoisseur we have built our organization around managing risk for our clients through a scalable, cost-effective and predictable deliver. Sudha Kaushal's top article generates over 1000 views. Bookmark Sudha Kaushal to your Favourites.
Camp Victory In Iraq Our new mission is to have Iraqis kill us and kill each other more slowly than they did before The Surge. Mission Accomplished, we have achieved Victory in Iraq