|
just another regularban.info web blog |
| MEMBERS: | Efficient SQL Databases
Don't be fooled by seeming simplicity. A lot of developers get comfortable with a certain way of designing a database for their web applications that they miss out on techniques they should rather employ to make things run faster and more efficiently. A lot of developers don't bear in mnd that the small site they are creating now might grow into something incredibly large and complex, and the database they designed has become bloated and doesn't scale well to meet the demands of the increased traffic. This article hopes to provide web developers with a few techniques to help make their database and queries faster and more efficient. 1. Avoid Character Types When you are designing a database, it is so easy to set all data types to the VARCHAR type as it can then contain any data you want; numbers or text. But character data is amongst the most inefficient data type you can get. If a field is only going to contain numbers, then make it one of the appropriate types (INT, DOUBLE, etc). Also, wherever possible in your web development code, try to use numeric data types as opposed to characters. One of the most common things a script has to store are flags like whether someone answered yes or no to a question, etc. You could of course store it as 'Y' or 'N' but why not store it as 0 and 1? The reason this makes a difference is when you have a database, for example, with over 500 000 entries, and are running a SELECT on that field, comparisons are processed a lot faster for numeric data types than character types. Also, if you need to return data to the calling script, numeric data is less memory intensive than character data. In addition, your web development language (PHP, ASP, etc) would also be able to process and perform functions on numeric data better than character data. I am not trying to convince you never to use character data types. Sometimes it is a necessity, but if you can find ways to reduce the amount of character data processed by your SQL database, the better your server will cope. 2. Normalization Normalizing a database is really quite a complex process. It is a process that describes a way to design a database structure to avoid repetition of data in your database and can lead to significant performance benefits if employed correctly. However, the entire process of normalisation is a bit beyond the scope of this article as it can fill books on its own, but any developer designing a database should seriously consider becoming knowledgable about normalisation and employing it in their own designs. For a good tutorial on this process: http://www.keithjbrown.co.uk/vworks/mysql/mysql_p7.php 3. DateTime vs Timestamp fields This actually relates to 1. a bit. The big difference to bear in mind here is that a field of type DATETIME is actually stored as a series of characters. A field of type TIMESTAMP is actually stored as an integer. So therefore, a more efficient way of storing dates is using the timestamp method. The timestamp has its drawbacks however. For one, you cannot store a date early than 1 January, 1970. Also, timestamps in your script will need recalculating to get to the character format. Because of this recalculation, it may not be better to store as timestamp. It really is a case of testing which format works better for your needs. 4. Use LIMIT where possible In your queries, if you are doing a SELECT to a database and you only expect a certain number of results, using the LIMIT statement can speed your query up incredibly. For example, if you have a table of users and you need to run a query to search for one users record, you can use a query like: SELECT user_name FROM users WHERE user_id = 453; This query is perfectly valid and will return the right result. But you also know there will only be ONE result. The query above will search the database, find what you want, but then still continue searching after that. It would run a lot faster if you could tell the query that once it has found what you are looking for to stop searching. LIMIT can do this, as this query shows: SELECT user_name FROM users WHERE user_id = 453 LIMIT 1; Imagine this scenario. You have a table called logins, that records every login from a user. It currently contains over 2 000 000 records, and you want to find the first time a user logged in. Now bear in mind that because this table inserts data over time, it is already sorted for by date. You could do the following query: SELECT MIN(login_date) FROM logins WHERE user_id = 4876; This will return the record you want, but SQL will now have to get all dates for that user, sort them and then return the lowest value to you. Our table is already date sorted simply because of the way it records data for us. So using LIMIT can be more effective: SELECT login_date FROM logins WHERE user_id = 4876 LIMIT 1; Because it is sorted, the first one will always be a users first login. 5. Avoid using LIKE If you have tried to employ 1. above, then hopefully you will be in a scenario where you do not need to use LIKE all that much. LIKE is one of the most inefficient ways of searching a table. LIKE performs a text comparison search in a field and with no wildcards is as efficient as a direct comparison; i.e. WHERE name = 'Jane' is equivalent to WHERE name LIKE 'Jane'. It is when you start introducing the wildcard characters like '%' that things get really hairy. If you do have to use LIKE, then at least try and make efficient use of the wildcards. These are '_' (underscore) and '%'. Let me explain all this with a real world example. In a project I was involved in, we had a SQL database storing logs generated automatically from a mail server. Unfortunately, the mail server pretty much just dumped a very long string of text data into a field that contained the data we wanted. A script had to be written to find all logs that referred to a login by a user into the POP server. The only way we could do this was to search every record for a string in the msg field that had the text "User logged in" in it. The first query developed was something like this: SELECT msg FROM logs WHERE msg LIKE '%User logged in%'; This query took on average of about 35 minutes to process. Obviously not an ideal situation. The way the LIKE worked here was that it had to parse through every single portion of each and every record in the msg field looking for text that matched "User logged in" anywhere in the text. We were able to determine eventually that the text "User logged in" occured at the end of that text in the msg field and so we altered the query: SELECT msg FROM logs WHERE msg LIKE '%User logged in'; The '%' at the end was removed as we do not want to worry about text after because there is none. The query now only compares text to our string in the msg field at the end of the field and no longer parses through the entire piece of text stored in msg. The query now ran in under 2 minutes. (This was actually still too long, but how we optimised from there is a little beyond the scope of this article.) Hopefully with all these elements put into practice on your next web development project, you can have a database that runs quickly, efficiently, uses as little resources as possible and wont grind to a halt when the load suddenly increases.
How To Create A Powerful Website
So you're considering building a website and you may be feeling a little overwhelmed by it all. While this can easily happen it is wise to whip out some note paper and write down exactly what you want to achieve and what steps you need to take in order to get there. So the first thing you are going to need to do is put the foundation in place. This will require extensive research. Now contrary to popular opinion I start this process a little bit differently than what is generally advised. Now while we all know that you need to find a hungry market doing this can be a little more difficult than explained in actual fact that is just like everything else when it comes to doing anything online. Actuality can be quite different from theory. So what I do is visit the article directories. I punch in a keyword that I am interested in and see what articles come up relative to that. Then I check the articles out to see how many page views they have received over a given period of time. If an article receives a lot of page views then I know that there are a number of people looking for information relative to this subject. I also know that if I write an article on this topic that it will receive a lot of page views and as a result get a lot of click throughs to my site which will help me get traffic quickly without having to worry about what Google and everyone else does. Next I visit the forums to see what solutions are being discussed then I go back to the articles and check what the writers are promoting and see if it is a valid good product to help people achieve the goals they desire. If so then I make note of it. Now I feel a little more confident about building a site around this theme. The next thing you have to consider is the domain. A keyword in the domain is helpful but not essential. Your next quest is hosting. You need a good host as this is your life line. Finally you want to be able to build the site effectively so as to achieve good search engine rankings. Keyword research relative to your overall theme will help you to do this plus you need to structure the pages properly so that you site can be understood by the search engines. Do not worry if you lack technical knowledge as there are site builders out there to help you overcome this challenge. Select any of the following links to watch some free videos.
Flash Website Development
Internet marketing is booming at rapid pace and looking at the present scenario today this industry has become multi-billion dollar industry. As business is getting more competitive the demand for online information and website development has increased dramatically in last couple of years. Presently every business firms whether it is small or big is looking for well presentable website that could explain about products and services offered by them. After having a sheer look at the present scenario, today website plays an important role of online identity for a company in online marketing. These days' websites act as visual interface and business card. By developing effective online profile of your company, you can create better corporate image of the company. It is essential to understand that having an online presence means your business is open and you can convey your message easily. Now since every website represents a company and further help in attracting potential customer's attention, a bad website development or design may deject your customers to judge your online presence seriously. So it is very important to develop web that are well designed and have enough functionality to hold its visitors for longer time. This is one area where Flash web design solutions or Flash website development plays an important role and further gives an edge. If you want to provide a big and better impression to your visitors and want them to visit your site then using flash in your website is the answer. Integrated with 3D Graphics, Video and Audio, it enables you to have a fully interactive multimedia experience for any website. Moreover, it facilitates designers to develop animations and interactive images that can be embedded into a web page. Any website that is developed on flash gives better interactivity as it can be used to give animations interactive features. In addition to this, flash website also improves the scope of website graphic content by creating animations. Web solutions that are developed on Flash provide facility to incorporate sound as a background element or as a synchronized element. A flash site can be loaded in a one go, and once it gets loaded it is easy for any visitor to go through different areas of the site without reloading. Currently flash is not just a part of website, but has covered a long way and is now considered as a web template. Now you have flash templates to create any website which are better-looking than html web templates. Html web templates are plain but flash web templates are more interactive. Apart from this flash web templates have more user friendly navigation and amazing flash effects. Today where the time taken to make some decision or go through any website is getter shorter and nobody has enough time to go through the entire web-content a flash template can give them a better idea about the company. This technology is getting its world-wide acceptance. Website that is developed on Flash has become very powerful, and today developers have begun to understand its potential in online marketing industry. Thus, flash technology is right answer if you are looking for the excellent web design solution for your website. In fact flash gives a sparkling touch to your website.
|
* About Archives
Categories:
Last Updated: |
| regularban.info
is proudly powered by WordPress MU running
on regularban.info.
Create a new blog and join in the fun! Entries (RSS) and Comments (RSS). |