Today, Vikram shows us the basics of a database and are introduced to concepts like Database Management Systems and Relational Database Management Systems. We are also given a thorough overview of MySQL and its features. This excerpt comes from chapter one of MySQL: The Complete Reference, by Vikram Vaswani (McGraw-Hill/Osborne, ISBN 0-07-222477-0, 2004).
Most of the time, high database performance comes at a price: low reliability. Not true with MySQL, however. The system is designed to offer maximum reliability and uptime, and it has been tested and certified for use in high-volume, mission-critical applications. MySQL’s large user base assists in rapidly locating and resolving bugs and in testing the software in a variety of environments; this proactive approach has resulted in software that is virtually bug-free. Further, every new release of MySQL has to pass both MySQL’s in-house test suite, which tests each feature and also contains test cases for previously-fixed bugs, and MySQL’s crash-me tool, whose primary goal is to evaluate the system’s capabilities by pushing it up to (and beyond) its limits.
Ease of Use
MySQL is so easy to use that even a novice can pick up the basics in a few hours, and the software is well-supported by a detailed manual, a large number of free online tutorials, a knowledgeable developer community, and a fair number of books (hey, you’re reading one right now!). While most interaction with the MySQL server takes place through a command-line interface, a number of graphical tools, both browser-based and otherwise, are also available to simplify the task of managing and administering the MySQL database server. Finally, unlike its proprietary counterparts, which have literally hundreds of adjustable parameters, MySQL is fairly easy to tune and optimize for even the most demanding applications. For commercial environments, MySQL is further supported by MySQL AB, which offers professional training courses, consultancy services, and technical support.
MySQL is a full multi-user system, which means that multiple clients can access and use one (or more) MySQL database(s) simultaneously; this is of particular significance during development of web-based applications, which are required to support simultaneous connections by multiple remote clients. MySQL also includes a powerful and flexible privilege system that allows administrators to protect access to sensitive data using a combination of user- and host-based authentication schemes.
MySQL can handle extremely large and complex databases without too much of a performance drop. Tables of several gigabytes containing hundreds of thousands of records are not uncommon, and the MySQL web site itself claims to use databases containing 50 million records. In an eWEEK magazine benchmark cited on the MySQL web site, MySQL scaled efficiently at loads from 50 to 1000 simultaneous users, with performance dropping only marginally once the 600-user limit had been crossed. Businesses such as as SAP, Yahoo!, NASA, and Texas Instruments; high-volume web sites such as Google (http://www.google.com/) and Slashdot (http://www.slashdot.com/); and government organizations such as the US Census Bureau and the Rhode Island State Department are all using MySQL to power their systems—and, as http://www.mysql.com/press/user_stories/ demonstrates, they’re all exceedingly pleased with the results.
MySQL is available for both UNIX and non-UNIX operating systems, including Linux, Solaris, FreeBSD, OS/2, MacOS, and Windows 95, 98, Me, 2000, XP, and NT. It runs on a range of architectures, including Intel x86, Alpha, SPARC, PowerPC, and IA64, and it supports many hardware configurations, from low-end 386s to high-end Pentium machines and IBM zSeries mainframes.
Compliance with Existing Standards
MySQL’s development team has attempted to make MySQL as standards-compliant as possible. MySQL 4.0 supports most of the important features of the ANSI SQL-99 standard, with support expected to grow in future versions. Additionally, MySQL extends the ANSI standard with custom extensions, functions, and data types designed to improve portability and provide users with enhanced functionality. (See the sidebar entitled “The Right Choice?” for more information on compatibility between MySQL and other SQL-compliant database systems.)
Remember: this is chapter one of MySQL: The Complete Reference, by Vikram Vaswani (McGraw-Hill/Osborne, ISBN 0-07-222477-0, 2004). Vikram is the founder of Melonfire, and has had numerous articles featured on Dev Shed. Buy this book now.