Learn about new MySQL releases, technical articles, events and more.
By Daniel Fischer | 2008.06.24
Since you're reading this, you probably know that Sun is switching to the Bazaar version control system for all development work on the MySQL server. Unlike the version control system that we've been using previously, Bazaar is an open source project and freely available to anyone. This means that it is now much easier to follow ongoing development, or even to participate in it! On the downside, just like our previous tool, Bazaar is not quite as straight-forward as traditional version control systems such as CVS or subversion. The aim of this article is to give an overview and a general idea of how to set up Bazaar, how to access the MySQL server source code repositories, and the basic commands for working with the source code.
By Yoshinori Matsunobu | 2008.06.18
MySQL/Sun released a new storage engine "Falcon" in January, 2007. Falcon is a high performance transactional (fully compliant with ACID) storage engine, which is beta at this time (June 2008). In this article, I describe Falcon's features and its architecture in detail.
By MySQL Telecom Team (MySQL in Communications Blog) | 2008.05.23
During 2008 we are planning to run a series of interviews with interesting persons somehow related to the telecom field. In this first installment, we will have a chat with Juha Heinänen from Finland.
By Robin Schumacher | 2008.05.08
Managing database change is an incredibly important discipline that very few database professionals overtly talk or worry about until they're in the thick of things with a particular database - moving it from development to production, making changes to a newly installed production database, or implementing an updated version of the database (new tables, modifications to existing objects, etc.) in a SaaS application. It's at that point where change management becomes very important because if you don't do things right the first time, you can make a royal mess of things and even (in a small number of cases) reach the point of no return where you've completely torched your database.
By Robin Schumacher | 2008.04.04
Performance tuning is one of the top disciplines (if not THE top discipline) that database professionals want to excel at. Being able to take a system that's running sluggish and turn it into one that's running as fast as a scalded dog is a talent that's part art and part science, but whatever the combination necessary to make it happen, there will always be strong demand for folks who are good at it.
By Rob Young | 2008.04.01
In an earlier article I described how MySQL Enterprise takes the guesswork out of deciding which version of the MySQL server customers should be running by providing alerts around regularly scheduled Monthly Rapid Update and Quarterly Service Pack releases of the Enterprise Server. Being of an old school "if it ain't broke don't fix it" mindset, I understand the conservative approach most DBAs take when deciding if a new release of any software is relevant to their environment. In fact, given the monthly frequency of Enterprise maintenance releases and the work involved with upgrading, I completely understand how recipients can begin to ignore Update Alerts (unless of course a known fix is on the way). Based on feedback from customers, MySQL colleagues, and my own field experience, I recognize that while notifications around the regular Enterprise Server drops is a good thing, upgrading an existing MySQL implementation is no small task and that a major part of removing guesswork around new releases involves helping those receiving notifications better understand how they are affected.
By Robin Schumacher | 2008.03.27
To be really successful at working with databases, there are many different disciplines to become proficient in - things like disaster recovery, security management, data integration, and more. But there are less than a handful of things you want to be really good at; becoming super-skilled in them will help you enormously in your database career. And believe it or not, one of these key areas is data modeling and its kissing cousin, physical database design.
By Roland Bouman | 2008.02.21
Last week, I described how to use the MySQL plug-in API to write a minimal 'Hello world!' information schema plug-in. The main purpose of that plug-in is to illustrate the bare essentials of the MySQL information schema plug-in interface.
By Roland Bouman | 2008.02.12
MySQL 5.1 offers an extremely useful feature called information_schema plugins. This feature allows dynamic runtime loading of a shared library into the MySQL server to implement a table in the information_schema database. The SQL standard (ISO/IEC 9075-11:2003) allows database implementations to extend the information_schema. MySQL 5.1 transfers the possibility to do this directly to privileged database users so they can extend the information_schema themselves, in any way they see fit.
By Colin Charles | 2008.02.06
We got a chance to speak with Mårten Mickos, CEO of MySQL AB, about Sun's planned acquisition of MySQL, and we asked him some questions, that the community at large, might have.
By Giuseppe Maxia | 2007.12.19
This article explains how to test the performance of a large database with MySQL 5.1, showing the advantages of using partitions. The test database uses data published by the US Bureau of Transportation Statistics. Currently, the data consists of ~ 113 million records (7.5 GB data + 5.2 GB index).
By Jon Stephens | 2007.12.13
In this article, we discuss the XML functionality available in MySQL, with an emphasis on new features coming online in MySQL 5.1 and MySQL 6.0. We assume that you already have a working knowledge of XML, and that you know what the terms “valid” and “well-formed” mean. We also assume that you have some knowledge of XPath.
By Russell E Glaue | 2007.12.12
In part 2 we discussed the internals of MPP and how MPP can be used with LVS to create a failover strategy. In this part 3 we will discuss how to configure and operate MPP, and additionally use MPP with MySQL Proxy to create a failover strategy.
By Mark Schoonover | 2007.11.26
In September, the Developer Zone featured Chapter 6 of Paul DuBois' MySQL, 3rd edition on Writing C Programs with the MySQL C API. This month, we continue in this series on developing MySQL applications in C with a tutorial from Mark Schoonover about using the Eclipse CDT (C Development Toolkit) as an IDE for developing C applications for MySQL.
By Russell E Glaue | 2007.11.10
In Part 1 we have seen how the concept of state management works. Now it's time to apply that concept to a load-balancer. In this Part 2 we will look at a strategy for using Linux Virtual Server with MPP for failover, and also take a closer look at the mechanics of MPP itself.
By Russell E Glaue | 2007.11.01
Having a strategy for failover has become almost standard in the business world. Whether it is a total site failover from a NOC in one city to another, or just a simple redundant server. Over the years many technology solutions have been created for or adopted to MySQL to provide this type of strategy.
By John David Duncan | 2007.10.26
When Sun Microsystems released the ZFS filesystem in 2004, they set out to remove all of the practical limits on filesystem storage, and to make the arcane details of storage management a thing of the past. ZFS is a 128-bit filesystem with - to name just a few features - copy-on-write transactional semantics, fast snapshots, and optional compression.
By Ernest Bonat, Ph.D. | 2007.10.18
MySQL data load and search are very important business requirements in any Windows or Internet web application development. In general, any application needs to show a result set of data and/or a single record to the end-users. In Windows applications it is very popular to show a result set of data by using the DataGridView, ListView or TreeView controls. A single record can be shown by the simple combination of the following controls: TextBox, ComboBox, ListBox, CheckBox, RadioButton, etc. MySQL data search is provided by using the required ADO.NET data objects and by refreshing the controls if necessary. These two processes, data load and search, should be fast and should be done with the proper code which depends on the controls in the Windows Form or Web Page. In this article I will show you how load and sort MySQL data using the DataGridView control. To search MySQL data the LIKE SQL operator will be used. Both programming implementations are done by using stored procedures for MySQL 5.0 database engine.
Christopher Cordray, a ScienceLogic founder and the principal software architect behind the EM7 appliances, has more than fifteen years experience with networking, management systems and technology-related operations. Passionate about improving IT operations and application efficiency, Cordray has architected and developed various commercial and custom solutions for companies including Verizon Global Networks, Interliant, Inc and Edison International.
By Paul DuBois | 2007.09.28
Many web developers view development of C programs as a bit of a black art. Development of programs in a compiled language such as C is vastly different from the development of applications in a scripting language. To familiarize more developers with the MySQL C API, we present a three-part series of articles tailored to developers looking to get into C program development with MySQL. This first article is the full chapter from Paul DuBois' industry-standard work, MySQL, Third Edition, from Pearson Publishers. The second article, from Mark Schoonover, to be published next week, will cover development with the C API using the Eclipse CDT to write a sample program. The third article, also from Mark Schoonover, will go into more depth and expand the example program using more advanced features of the API.
By Robin Schumacher | 2007.09.18
The Falcon transactional storage engine uses the concept of user-defined tablespaces that are more in line with what one would find in Oracle (tablespaces) or SQL Server (filegroups). Let’s take a quick look at how tablespaces are used within Falcon and what you can and can’t do with them.
By Peter Lavin | 2007.09.18
PDO is a PHP extension providing a data-access abstraction layer that can be used with a variety of databases. This gives you the flexibility of changing the database backend without having to alter your access methods. Even if you use MySQL exclusively, PDO can provide advantages; you can use the same data-access methods regardless of the MySQL version. This does away with the need for using the standard MySQL extension with older versions of MySQL and using the MySQLi extension for later versions. An additional advantage is the ability to use object-oriented code regardless of the version of MySQL.
By Kaj Arnö | 2007.09.18
The phrase "security vulnerability" gives most of us the creeps. We are afraid of them. Looking at them rationally, they share a trait with other bugs: All are a pain, but some are a bigger pain than others. And instead of trying to avoid the evil by not talking about it, let's take a look at MySQL's security vulnerability track record over the years, and explain the rationale behind our actions using actual cases from past years.
By Jay Pipes | 2007.09.11
So, someone had a great idea to go back through the Developer Zone, which has become a bit disorganized of late, and put together an article with links and summaries for all the Dev Zone articles that discussed MySQL 5.1 features. I have done so, and also linked in many community member's blog articles and tutorials to give everyone a good dose of the features that make MySQL 5.1 worth investigating.
By Mark Schoonover | 2007.09.10
You've decided to obtain MySQL certification and that's great! Now it's a matter of how to go about it? You can go the traditional routes and take a class, or you can prepare on your own. I did the latter, and 2 exams later during MySQL Conference 2007, I passed the Certified MySQL Database Administrator (CMDBA) exams. I wanted to share my exam preparation experience, as I've never found this information in any other place. I took what I learned from how to study math and applied it to preparing for the MySQL exams. These techniques will probably work with other certifications, and I'm sure you'll come up with some of your own techniques to share.
By Christopher Keene | 2007.08.22
According to recent survey, over 20% of MySQL users plan to migrate a Microsoft Access applications to MySQL over the next 12 months. However there are few documents available that describe best practices for performing such a migration.
This document summarizes discussion from the “MS Access Migration” session at the 2007 MySQL User Group meeting in California. That session brought together a number of MySQL users with a goal of identifying key success factors for moving MS Access applications to MySQL.
By Giuseppe Maxia | 2007.08.17
The launch of MySQL Proxy has caused quite a commotion in the community. And with reason. For feature hungry people, this is undeniably the most exciting addition to MySQL set of tools.
If the last statement has left you baffled, because you don't see the added value, don't worry. This article aims at giving you the feeling of what the Proxy can do.
By Lenz Grimmer | 2007.08.02
David Axmark co-founded MySQL AB together with Michael "Monty" Widenius and Allan Larsson in 1995. Today, he is a member of the MySQL Community Relations team and has an advisory role in the MySQL Management. He travels all across the globe to advocate for MySQL and Open Source Software in general and has just recently moved from Uppsala, Sweden to Ascot in the United Kingdom, where he lives with his wife and two children.
By Giuseppe Maxia | 2007.07.28
Submitting patches to Open Source code doesn't come naturally to everyone. It is not easy, since it requires coding skills that the average user does not have. Moreover, code patches require a fair amount of additional documentation, without which the patch itself is virtually useless. These notes will walk you through the requirements of a good patch for MySQL server and perhaps other projects.
By Kaj Arnö | 2007.07.26
One of the most popular keynotes of the MySQL Conference & Expo 2007 was called "The Clash of the DB Egos". It was a fight amongst seven database luminaries, all playing an important role either within MySQL AB or as providers of Storage Engines that work closely with MySQL. This article attempts at giving a picture of what the fight was about, through reciting the egos and the questions posed to them by the referee.
By Jay Pipes | 2007.07.12
Damien Seguy had an interesting observation on my use of self joins for generating rolling sums.
By Giuseppe Maxia | 2007.07.04
What's behind MySQL bugs processing? Who handles your bug report? Why does it take so long? These, and many other questions are answered in this article about the internals of MySQL organization.
By Giuseppe Maxia | 2007.06.28
MySQL users often dream about a more powerful yet stable database server. They want a server with more features, like expanding macros, customized logging, access to shell commands, access to live tables from other DBMS. Every feature, given enough development time, can be eventually implemented, but users want them now, with the current GA server. It can be done. Using a proxy server, some of those dreams come true. Today.
By Rob Young | 2007.06.27
During my years as a Developer/DBA hearing the words "customizable" or "extensible" always brought a slight smile to my face, particularly when they were used in conjunction with a software sales pitch or evaluation. In fact, more often than not, while presented as product features, these words often really mean, "you can do some additional things with this software if you are willing to invest significant time and resources into doing so". Even today, some of the most popular open source and commercial software solutions provide application programming interfaces (APIs) and plug-ins that are really nothing more than containers that allow you to provide your own code. The goal being to make an off-the-shelf product more applicable to the problems you are attempting to solve without having to write a customized application from scratch.
By Ernest Bonat, Ph.D. | 2007.06.25
Lookup tables contain, in general, a fixed list of data. This data doesn’t change very often in database business applications. Examples of this data could be a product list, category type, supplier list, state name, zip code, phone area code, etc. In Windows and Internet web business applications, most of these lookup tables are graphically implemented by using ComboBox, ListBox or CheckListBox read-only controls. These controls are loaded with data using two main columns, ID and Name. For example, the USA state table, the ID could be ‘CA’ and the Name ‘California’. Some times, for standard Windows form and Internet web page we need to show data to the end-users from many of these lookup tables. A fast data loading process and defining the main column values for each lookup table is required. In this article I will show you standard lookup data loading procedure and the generic classes object to store and read-only the values of the ID and Name columns from the lookup tables. Selecting and finding the ID and Name values will be provided. Executing stored procedures with input/output parameters in MySQL 5.0/VB.NET 2005 will be covered in detail too.
By Jay Pipes | 2007.06.21
Today, Lenz was putting together some stats on PlanetMySQL feeds added since January this year, and asked in an email whether he should include totals in the stats. I responded yes, and offered a quick SQL solution to get those numbers out of the database. I thought it might be useful for others, so here goes...
By Robin Schumacher | 2007.06.13
The admission I'm about to make will likely cause me to lose some friends/colleagues in the open source world, but I have to be honest: I like using Microsoft Windows. Except for Windows 3.0-3.1, I always have. Further, I personally much prefer managing databases on Windows than Unix and will also give Windows the nod over Linux in certain areas. See, I came from managing DB2 on the mainframe to running data warehouses with Teradata on their proprietary platform, and then did a long run with Oracle on UNIX (AIX and HPUX).
By Lenz Grimmer | 2007.06.08
Jan Kneschke works for the MySQL Development Team and is the author of the very popular lighttpd web server. I recently had the opportunity to ask him a few questions about himself and his work.
By Roland Bouman | 2007.06.06
There is a popular myth about the SQL GROUP BY clause. The myth holds that 'standard SQL' requires columns referenced in the SELECT list of a query to also appear in the GROUP BY clause, unless these columns appear exclusively in an aggregated expression. MySQL is often accused of violating this standard. In this article I will attempt to debunk this myth, and to provide a more balanced view regarding MySQL's treatment of GROUP BY at the same time.
By Rob Young | 2007.05.21
The value of timely information regarding maintenance releases, including specific information of what bugs have been fixed and when and where to get the upgrade, proves very compelling for those DBAs and developers with little to no bandwidth. The good news is MySQL Enterprise takes the guesswork out of deciding which version of the MySQL server you should be running by providing regularly scheduled Monthly Updates and quarterly Service Packs for the Enterprise Server.
By Jay Pipes | 2007.04.17
Robin Schumacher recently gave us an excellent rundown on sessions at the upcoming MySQL Conference and Expo (April 23-26th in Santa Clara) for DBAs. As a proud developer I wanted to make sure that our enormous developer community had a similar guide. Now, developers will encounter the same problem that Robin pointed out: with so many excellent sessions, you'll be required to make some difficult choices sometimes in what sessions you attend. This guide will hopefully allow you to navigate the waters. I've broken the guide down into a general section and also into programming language specific sections.
Sebastopol, CA -- April 10, 2007 -- The 2007 MySQL Conference & Expo is gearing up for April 23-26 at the Santa Clara Convention Center in Santa Clara, California. This year's program includes more than 110 tutorials and sessions to be delivered by some of the most successful companies and fast growing web sites in today's Internet economy -- including YouTube, Flickr, and Wikipedia, whose participation underscores the influence of MySQL's open source database. According to Tim O'Reilly, CEO and founder of O'Reilly Media, Inc., "Every killer app on the Internet is a database application. And that makes MySQL the 'Intel Inside' of the next-generation of computer applications."
By Robin Schumacher | 2007.04.05
One of the great things about MySQL is the superior innovation model that’s used to deliver database server software. Rather than relying solely on internal engineers who create and maintain a piece of software (as in a traditional software company), MySQL partners with the millions of active users across the world who take advantage of the open source model and daily extend the MySQL server to do new and pioneering things. These innovations can then be submitted to MySQL AB, tested, validated, and rolled into the database server so everyone can benefit from the creativity of the very active MySQL community.
By Robin Schumacher | 2007.03.13
I live in absolute and abject poverty. No, I don't mean financially - I've been blessed beyond what I deserve and MySQL pays me very well. What I mean is that I am utterly time poor. Isn't it amazing how you can be so free in terms of lifestyle and yet have so little time to enjoy and benefit from it all? There are so many options and choices in the world that many times you have a hard time knowing just what to say "Yes" to and what to turn down. Trust me - you'll face this dilemma at the upcoming MySQL User's Conference. Our chairman, Jay Pipes, has outdone himself and put together the most engaging and power-packed agenda that we've ever had. The presenter's list reads like a who's who in the open source and modern database world, with sessions that address everything from deep dives down into database internals to the business side of implementing online database applications. You will find yourself hard-pressed to put together a personal attendee schedule because there will be so much you'll want to see and hear.
By By Peter Gulutzan and Dmitri Lenev | 2007.03.13
This year many American states and Canadian provinces will switch to daylight saving time on March 11 (the second Sunday of March) instead of switching on the first Sunday of April as happened during previous years.
By Ernest Bonat, Ph.D. | 2007.03.08
In Windows and Internet web business applications development the connection to the MySQL database server is critical and requires high-level of security. In ADO.NET database technology the connection is defined in the Connection String property of the connection object. Defining and storing the MySQL Connection String properly is an important application setting task for developers today. In this article I'll show you how to setup and secure MySQL Connection String for Windows application development using VB.NET 2005. Also the difference of programming code between VB.NET 2003 and 2005 will be provided for data loading using MySQL Connector/NET 5.0.3 database driver.
By Robin Schumacher | 2007.02.28
Every now and then I get a big reminder of how great it is to be a part of the open source way of doing things. Having a strong community of MySQL lovers who use the free and open source MySQL database server and pay MySQL AB with code contributions and bug reports is truly a great way to develop rock solid and innovative software. Some contributions that come back to MySQL are small, but others are very large indeed. What would be large, you ask? How about a new, powerful transactional storage engine?
By Robin Schumacher | 2007.02.19
In Part 1 of this article series, we looked at how the Falcon transactional storage engine was architected and how it compared to some of the other MySQL storage engines. Part 2 covered how Falcon handles transaction management and concurrency. In this final article in the series, I’ll look at how Falcon manages tables and indexes, and also cover backup/recovery along with migration topics.
By Robin Schumacher | 2007.02.09
In Part 1 of this article series, we looked at how the Falcon transactional storage engine was architected and how it compared to some of the other MySQL storage engines. In this article, I’ll focus on how Falcon performs transaction management, including some special points on where Falcon differs from some of MySQL’s other transactional engines.
By Robin Schumacher | 2007.02.02
If you’ve been using MySQL for any time at all, you know that a unique advantage afforded MySQL users is the ability to use multiple storage engines to manage the underlying data stored on the server. This efficient and modular architecture provides large performance and manageability benefits for those wishing to specifically target a particular application need – such as data warehousing, transaction processing, high availability situations, etc. – while enjoying the advantage of utilizing a set of interfaces and services that are independent of any one storage engine. The MySQL server supplies engines that are internally developed, provided by third-party software vendors, and also allows a user to build their own storage engine if they desire.
By Lenz Grimmer | 2007.01.18
One of the new features in upcoming MySQL 5.1 Server will be the Event Scheduler. This feature was implemented by Andrey Hristov within the scope of a master's thesis for the University of Applied Sciences in Stuttgart. We incorporated his contribution into our code base - you can read more about this feature in this article from Peter Gulutzan. Andrey is now employed by MySQL AB as a Software Developer. Lenz Grimmer asked him if he would be interested in sharing his story and provide some more background about himself.
By Robin Schumacher | 2006.12.11
One thing I learned fairly early in my DBA career was that if I was ever going to excel in managing the databases under my care, I needed to do one thing: smartly automate as much of my job as I could. This became particularly important in my last full-time DBA spot where one other guy and I had responsibility for about 120 Oracle, SQL Server, and DB2 databases. A lot of these databases ran critical applications with lots of users, so we were rarely bored at work. To keep our heads above water, we needed to do something to ensure we always had our finger on the pulse of all our servers, plus we needed to make sure that any performance issue was recognized as early as possible.
By Colin Charles | 2006.11.17
Zmanda specializes in backup and recovery solutions. First they gave the world Amanda, and now they've given MySQL users a new reason to rejoice with the launch of Zmanda Recovery Manager (ZRM) for MySQL. I recently got to speak to Paddy Sreenivasan, the Vice President of Engineering and co-founder of Zmanda Inc., amidst his busy schedule, about what they do and why MySQL users should be jumping towards ZRM for MySQL for all their backup & recovery needs.
By Anil Mahadev | 2006.11.16
This tutorial gives you a practical introduction to MySQL 5 Application Development using the MYSQL Connector for .NET with Microsoft Visual Studio.NET 2005 and how to build a simple Database Application using VC# and MySQL 5.
By Oli Sennhauser | 2006.11.08
Introduction: Eventually every database system hit its limits. Especially on the Internet, where you have millions of users which theoretically access your database simultaneously, eventually your IO system will be a bottleneck. Conventional solutions: In general, as a first step, MySQL Replication is used to scale-out in such a situation. MySQL Replication scales very well when you have a high read/write (r/w) ratio. The higher the better. But also such a MySQL Replication system hits its limits when you have a huge amount of (write) access. Because database systems have random disk access, it's not the throughput of your IO system that's relevant but the IO per second (random seek). You can scale this in a very limited way by adding more disks to your IO system, but here too you eventually hit a limit (price).
By Jay Pipes | 2006.09.11
If you've spent any amount of time on the forums, you probably will have recognized Brian among the forum users who most frequently answer posts -- particularly SQL and performance-related questions. Some time ago, I had a chance to ask Brian a little bit about his experience writing Phorum, about his thoughts on open source and MySQL in particular, and on his vision for Phorum in the future...
By Jay Pipes | 2006.09.08
Webyog is the company behind the popular SQLyog GUI tool for managing and developing MySQL databases. They have a great history of partnership with MySQL and, recently, decided to open source part of their product line. I had a chance to interview Rohit Nadhani, co-founder of Webyog, about their decision to move to open source, the changes they've made to the code as a result of that move, and various other things.
By eZ Systems | 2006.08.24
This article explains how to tune a MySQL database for use with eZ publish. MySQL is a database engine used by eZ publish to store content. While other databases are supported by eZ publish (such as PostgreSQL and Oracle), for performance reasons we recommend MySQL. This article has suggestions for optimizing for either read or write operations, and also discusses some other optimization techniques such as DNS and filesystem configuration.
By Jon Stephens and Peter Gulutzan | 2006.08.08
Partitioning is a way of pre-organizing table storage. You can say "some of the table's rows will go here, some will go there, still others will go to to still other places". Often, depending on the storage engine, the effect is to spread the table's rows over different files or even different disks.
By Lenz Grimmer | 2006.08.04
Stephan Uhrenbacher is the Managing Director of Qype GmbH, the company behind the Qype.com web site, which allows users to recommend places in Germany and has developed into one of Germany’s most interesting web 2.0 applications.
By Robin Schumacher | 2006.07.20
Many of you have responded very positively on the first and second partitioning articles that I wrote some time back. It’s clear that a lot of you are excited about the upcoming MySQL 5.1 release, and in particular, the new data partitioning feature that’s being offered. That’s no surprise because, as we covered in the previous two articles, partitioning has some excellent performance and management benefits for anyone who’s building data warehouses or other large databases with MySQL.
By Philippe Campos | 2006.07.10
In this article we explore how to program foreign keys into a MySQL Server. This is important when your application requires referential integrity and the storage engine you’d like to use, as in the case of MyISAM or NDB (Cluster), does not support this functionality natively. We should note that InnoDB and the upcoming code-named “Falcon” storage engine, both support foreign keys.
By Martin Skold | 2006.07.06
In this Developers Zone article we take an in-depth look at how the ALTER TABLE command is implemented in MySQL Cluster 5.0.
By Mark Thomas and C.J. Collier | 2006.06.03
This document is a user report on the MaxDB Synchronization Manager. The article describes the use of the MaxDB Synchronization Manager during United Drugs Annual Convention from a technical standpoint. It gives an example of the magnitude of possible application of the MaxDB Synchronization Manager. Written for developers, the user report contains warnings on common pitfalls and gives hints how to circumvent the problems.
By Lenz Grimmer | 2006.06.02
The PrimeBase XT Storage Engine (PBXT) is a new transactional database engine for MySQL. It has been designed for modern, web-based, high concurrency environments. In May 2006, I had the opportunity to meet with Paul McCullagh, the head developer of PBXT for lunch at the Hamburg offices of Snap Innovation GmbH, the company behind PrimeBase. It was co-founded by Paul in February 1996 and is focussed on the development and sales of client/server database technology, specializing in inter- and intranet systems.
By Zack Urlocker | 2006.05.31
This interview took place with Monty Widenius, co-founder of MySQL, at his house outside of Helsinki, Finland. In Monty’s usual understated Finnish style, we talked about MySQL 5.0, coding styles and cooking.
By Ulf Wendel | 2006.05.31
In this issue of the MaxDB series we will introduce you to some selected aspects of transactions. The topic of transactions seems pretty boring. But in fact it depends very much on the point of view you take. We have tried to put a light on the subject that shows some rather advanced aspects of transactions which are a little less often discussed in database classes.
By Harrison Fisk, Alex Davies | 2006.05.24
One of the main reasons to use a MySQL Cluster is the ability to get better performance and scalability compared to using a database that is confined to a single host. This chapter discusses many of the concepts related to performance and scalability, as well as how to ensure that you get the maximum performance from your MySQL Cluster setup.
Business intelligence is the key to fact-based decision making in the intelligent enterprise. Techniques and tools are designed to unlock knowledge from data.
By Robin Schumacher | 2006.05.23
In my first article on partitioning, I demonstrated that you can get some pretty impressive performance benefits when you properly design partitioned tables to match the SQL queries that are routinely shot across the bow of your database server. I’d now like to continue in that vein and show you how easy and efficient partitioning is in terms of managing how partitions are created and removed within tables.
By Robin Schumacher | 2006.05.05
In MySQL 5.1, a new engine has been provided that assists with the management and use of delimited data found in common flat files. Robin Schumacher takes a quick look at this new engine, along with the features and benefits it provides users of MySQL.
By Giuseppe Maxia | 2006.04.24
You may know about the MySQL Cluster, which is a complex architecture to achieve high availability and performance. One of the advantages of MySQL Cluster is that each node is a peer to the others, whereas in a normal replicating system you have a master and many slaves, and applications must be careful to write only to the master. In this article, Giuseppe Maxia, CTO of Stardata IT, provides unique insight into circular replication (multi-master replication) with failover.
By Peter Gulutzan | 2006.04.13
Andrey Hristov added "Events" for MySQL version 5.1 when he was working on his master's thesis for the University of Applied Sciences in Stuttgart. We liked the feature a lot, and now Andrey works for MySQL. An inspiring story, eh? And now MySQL 5.1 is getting stabler, it's "beta" instead of "alpha". So we can try some real work with this Events feature.
By Ulf Wendel | 2006.03.31
MySQL has started a MaxDB series on its corporate blog aggregator. Since the beginning of Februar the MaxDB team tries to write one MaxDB article per week for you. The articles get published on our english language web site http://www.planetmysql.org. All articles together will make a complete MaxDB class. The class describes the use of MaxDB as a stand-alone enterprise database. We do not discuss the use of MaxDB with SAP applications.
By Lenz Grimmer | 2006.03.03
Linden Lab is the company behind the virtual world simulation Second Life (SL) in wich users (the residents) can freely roam around and actively participate in the creation and development of the virtual world and their own appearance (their avatars). To facilitate this, Second Life provides powerful in-world 3D construction tools as well as a special scripting language, LSL. Second Life also provides its own economy and currency (Linden Dollars), that residents can use to purchase goods and objects that other residents created. Interestingly, it’s even possible to exchange Linden Dollars into US dollars and vice versa.
By Robin Schumacher | 2006.02.22
A few years ago, I wrote an article entitled "The Foundation of Excellent Performance" (still available at http://www.tdan.com/i016fe03.htm) where I argued against the notion that SQL code was the number one contributor to performance in a database-driven system. Instead, I stated in the article that I firmly believed how good physical database design was far and away the leading component of superior database performance. In addition, I showed that Oracle's own research illustrated how poor design was the main culprit behind database downtime (planned or unplanned). In the years since then, I've not changed my stance and still think that any DBA who wants a high-performance database has got to invest in intelligent and savvy physical design to produce the kind of response times that make end users smile instead of scream.
By Lenz Grimmer | 2006.02.11
The Ruby scripting language was first published in 1995, and has a very dedicated and active community of users around it. And with the release of the Ruby on Rails web framework in July 2004, Ruby has emerged as a serious alternative to PHP and Java for developing database-driven web sites. MySQL is one of the most popular choices as a database backend for Ruby on Rails applications and we support the Rails community with a dedicated forum about MySQL and Rails.
By Robin Schumacher | 2006.02.09
It's no secret that corporations are swimming in more data than ever before. IDC has recently pegged data growth at 48% a year, which means that corporate data nearly doubles every two years at many companies. In addition, purchased applications and custom built systems continue to bring in new databases that require attention, and business intelligence remains a red-hot area for modern enterprises with many companies building analytic data warehouses or data marts that continually feed information to key decision makers.
By Lenz Grimmer | 2006.01.17
I recently had the pleasure to get in touch with Kai "Oswald" Seidler from the Apache Friends team. He is one of the people behind 'XAMPP', an easy to install software distribution containing MySQL, PHP and Perl which is available for Linux and Windows. The project also added support for Mac OS X and Solaris recently, but these ports is still in an early beta stage.
By Trudy Pelzer | 2006.01.13
In this article, I'll give a preliminary description of a new MySQL feature for scheduling and executing tasks. In version 5.1.6, MySQL has added support for events. That is, you can now say: "I want the MySQL server to execute this SQL statement every day at 9:30am, until the end of the year" -- or anything similar that involves any number of SQL statements, and a schedule.
By Alexander Barkov and Peter Gulutzan | 2006.01.12
MySQL version 5.1.5 has functions for searching and changing XML documents. This article has examples.
By Carsten Pedersen | 2006.01.03
MySQLs Certification Manager outlines the upcoming changes in the MySQL certification program, and why those changes were made.
By Chris Shiflett | 2005.12.21
Security is a hot topic, particularly for web applications. Essential PHP Security is a book by PHP security expert Chris Shiflett (O'Reilly Media, Inc, October 2005, ISBN 059600656X). Since we already covered SQL injection recently, we chose to publish chapter 2 from this book, "Forms and URLs".
By Robin Schumacher | 2005.12.01
The IT crown jewels of any organization lies in their database infrastructure. Obviously, well-designed front end applications play a leading role when it comes to ensuring that critical information is captured or reviewed, but the buck stops at the database when it comes to data retention and protection.
By Ulf Wendel | 2005.11.24
MaxDB has a unique, top position in the list of open source database. The SAP-certified database management system combines ease of use, high availability and exceptional performance with low costs. This whitepaper presents a technical analysis of how MaxDB is designed to meet the requirements of hosting business critical SAP applications.
By Carsten Pedersen | 2005.11.17
MySQL's stored procedures do not provide for direct support of passing and using object names in the procedure. But it's pretty easy to work around this limitation.
BIRT is rich reporting technology powered by the Eclipse BIRT project. Actuate BIRT inlcudes support and subscription sevcies, is MySQL Network Certified and is a recommended reporting and analytics component of a MySQL Data Warehouse Scale-Out Solution Set.
Here is some how-to information on using BIRT with MySQL.
Flash demo on building a complex report with BIRT on MySQL »
Example of building a report against Bugzilla on MySQL »
By Carl "C.J." Collier | 2005.11.09
This series of articles describes how to install and configure the MySQL MaxDB Synchronization Manager. In a step by step approach the author guides you through the process of obtaining, installing, testing, configuring and running MaxDB and the Synchronization Manager.
By Robin Schumacher | 2005.10.26
Let's take a quick test drive to show how simple it is to use MySQL's pluggable storage engine architecture and see the impact different storage engines can have on performance.
By Robin Schumacher | 2005.10.19
The reasons for the huge popularity and increasing adoption of MySQL as a serious database platform can many times be boiled down to two, but surprisingly contrasting, considerations:
1. How much MySQL is like other database platforms.
2. How much MySQL is different than other database platforms.
php|architect's Guide to PHP Security, a book by PHP developer Ilia Alshanetsky (Marco Tabini & Associates, September 2005, ISBN 0973862106), discusses the important topic of how to make PHP applications secure. Chapter 3, for which the MySQL Developer Zone received permission to reprint, covers "SQL Injection".
By By Robin Schumacher and Arjen Lentz | 2005.10.05
As anyone will tell you, competition is a good thing because it gives you a choice. Acquiring current and accurate information about your options enables you to spend your time and money in the most efficient way and is certainly time well spent.
By Daniel McAlister, CTO, Integrated Spatial Solutions Inc. | 2005.09.18
Portraits of Ireland Ltd is a web based Irish company aiming to help connect the diaspora to people and places in Ireland through Art. This startup company required an online interactive atlas to assist both artists and those commissioning their work to find not only the island's more well known locations but also its remote and smaller place locations. To this end an Artist Atlas was created. Some of the primary requirements were a cartographically rich, atheistically pleasing vector based system, fully searchable, and with as extensive a database as possible.
By Robin Schumacher | 2005.09.06
More than at any other time, database professionals are being aggressively challenged by mushrooming volumes of data in corporate business systems. While some industry analysts project data growth at an average rate of 42% a year, that figure is conservative in some installations where growth rates are several hundred percent, with no end in sight.
By Mike Hillyer | 2005.08.17
Most users at one time or another have dealt with hierarchical data in a SQL database and no doubt learned that the management of hierarchical data is not what a relational database is intended for. The tables of a relational database are not hierarchical (like XML), but are simply a flat list. Hierarchical data has a parent-child relationship that is not naturally represented in a relational database table.
By Arjen Lentz | 2005.08.15
Marc Delisle is one of the lead developers of the very popular phpMyAdmin project, a web/browser-based tool for MySQL Administration. I talked with him about MySQL, phpMyAdmin (of course), and being a developer in general.
By Scott Sanders and Teodor Danciu | 2005.08.05
The open source DBA Dashboard for MySQL automates the statistical data collection, reporting and monitoring of the internals of your MySQL Servers. Information such as server health, schema information, database size, and usage statistics are aggregated on a periodic basis to give you insight into your MySQL databases. This JasperReports application answers questions such as: How many queries per day? Which user has the most resource usage? What tables are growing the fastest?
By Michael Kruckenberg and Jay Pipes | 2005.08.03
Pro MySQL,
a brand new book by Mike Kruckenberg and Jay Pipes
(Apress, July 2005, ISBN 1-59059-505-X),
provides intermediate and advanced MySQL users with a comprehensive
guide to the array of features available in MySQL upto and including
MySQL 5.0
Since the MySQL Developer Zone has had quite a few articles related to
the new MySQL 5.0 features, we chose to publish chapter 6 covering
another hot topic, "Benchmarking and Profiling".
This is one of the first books to cover MySQL 5 in depth. It foregoes
the usual reiteration of basics that you'll find in other books, instead
concentrating on MySQL's advanced applications in enterprise
environments. Further, this book doubles as a quick reference guide for
configuration directives, commands, and features.
The book's own companion web site is at http://www.promysql.com/
By Robin Schumacher | 2005.07.19
All robust relational database management systems utilize memory caching to help improve the overall responsiveness of their underlying engine. While certainly not free, accessing application data, query plans, or database metadata in RAM is normally much quicker than repetitively retrieving that same information from disk or building it from scratch.
By Russell J.T. Dyer | 2005.07.18
O'Reilly has published a fabulous book on MySQL. The authors, Jeremy Zawodny and Derek Balling, have drawn on their extensive experience as MySQL administrators at Yahoo to write High Performance MySQL for fellow administrators. Instead of getting bogged down with the basics of MySQL, the book focuses on understanding performance factors in MySQL and how the different ways of creating databases or of modifying existing databases will affect speed and efficiency. While this is an advanced topic, the text and concepts are easy to follow. It's written on the assumption, however, that the reader already knows MySQL but is unaware of how databases can perform better and how tables can be constructed, joined, and indexed optimally.
By Russell J.T. Dyer | 2005.07.18
MySQL Press is a relatively new imprint for the book publisher Pearson Education. They are billed as "the exclusive publisher of technology books and materials that have been authorized by MySQL AB, the company that develops and markets the MySQL database." As part of their initial set of MySQL books, they have published an excellent book on learning the basics of MySQL called MySQL Tutorial. It's written by Luke Welling and Laura Thomson, the authors of PHP and MySQL Web Development (Sams 2003). Their tutorial has a simple style and a relaxed pace that's ideal for MySQL beginners.
By Russell J.T. Dyer | 2005.07.18
Apress is fairly new to the open source book publishing business. However, in a short amount of time they've put together a nice collection of books. They've done this by buying many titles from Wrox Press, but more importantly by seeking out some good writers with expertise in their field to write new books. So, if you're not familiar with Apress books, you might want to take a look at them. As part of their expansion into the open source arena, they've been publishing some new books on MySQL. One book that I found to be very interesting is Beginning MySQL Database Design and Optimization by Jon Stephens and Chad Russell.
By Robert Schneider | 2005.07.15
The MySQL Developer Zone received permission to publish excerpts from the book "MySQL Database Design and Tuning" by Robert Schneider, published in 2005 by Sams (ISBN 0672327651). Chapter 18 is a case study that reviews a broad-based collection of performance problems, along with their solutions.
By embedding the MySQL server library in MySQL applications, MySQL doesn't have to be installed on the end user's computer. It's particularly useful with small devices and public kiosks. The embedded MySQL server also has the advantage of running faster with MySQL applications since there isn't a network connection or any passing of data between the application and MySQL. It's able to avoid these factors because the server library is embedded in the compiled program. Best of all, the embedded server library is part of the MySQL distribution.
The MySQL Developer Zone received permission to publish excerpts from the book "MySQL: The Complete Reference" by Vikram Vaswani, published in 2004 by McGraw-Hill/Osborne (ISBN 0-07-222477-0). Our first selection is chapter 14 about Security, Access Control, and Privileges. The book's own companion web site is at http://www.mysql-tcr.com/
By Arjen Lentz | 2005.06.14
MySQL 5.0 is currently in its beta phase. It may appear obvious, but software does not magically become stable (production quality) just by waiting a while! Our chief QA engineer Omer BarNir would like to ask you to assist by testing key features in 5.0: stored procedures, views, and triggers.
Includes The MySQL 5.0 Beta Challenge!
Also available in Russian »
This technical white paper provides performance results, best practices and tuning techniques from Dell and MySQL experts Dave Jaffe, Todd Muirhead and Peter Zaitsev. Using the Dell PowerEdge 2800 and MySQL Certified Binaries, the DVD Store application achieved over 1900 transactions per minute, i.e. over one billion orders per year.
Download the Dell Sizing Guide for MySQL Network »
Download the DVD Store benchmark application from Dell »
By Arjen Lentz | 2005.06.03
João Prado Maia is a Senior Software Engineer for the Internal IT department of MySQL AB. We were lucky to catch him in the wild a few years ago with his project Eventum, which we will talk about more also.
The MySQL Developer Zone received permission to publish excerpts from the book "Beginning MySQL Database Design and Optimization: From Novice to Professional" by Jon Stephens and Chad Russell, published in 2004 by Apress (ISBN 1-59059-332-4). Our first selection is chapter 5 about Joins, Temporary Tables, and Transactions.
By Russell Dyer | 2005.04.26
A utility like mysqldump is very useful for backing up MySQL data and table schema. However, backups are usually made only once a day or at some other regular interval. If data is lost on your system several hours after the last backup is completed, you may not be able to recover it. There are a few methods by which you can continuously protect data, some of which are explored in this article.
A history of more than three decades has made MaxDB by MySQL a very mature database with a rich tool set for performance monitoring and analysis. Aside from an activity overview screen and the EXPLAIN SQL statement a SQL logger sophisticated monitoring tools are shipped with MaxDB for free. In a small series of articles we'll try to put light on the miracle of performance tuning.
By Arjen Lentz | 2005.04.11
People often ask me about which MySQL version they should use, whether they should consider upgrading, what to do when they find a bug, and so on. Though these things are covered in the MySQL Reference Manual and other places, this article aims to cover all the essentials in the one place.
By Peter Gulutzan | 2005.03.24
This is the second part in the "MySQL 5.0 New Features" series. Peter Gulutzan covers MySQL 5.0 support for Triggers using detailed examples, source code, and hands-on exercises.
By Trudy Pelzer | 2005.03.23
This is the third part in the "MySQL 5.0 New Features" series. Trudy Pelzer covers MySQL 5.0 support for Views using detailed examples, source code, and hands-on exercises.
By Trudy Pelzer | 2005.03.23
This is the fourth part in the "MySQL 5.0 New Features" series. Trudy Pelzer covers the MySQL 5.0 Data Dictionary using detailed examples, source code, and hands-on exercises.
By Peter Gulutzan | 2005.03.16
This is the first part in the "MySQL 5.0 New Features" series. Using detailed examples, source code, and hands-on exercises, Peter Gulutzan shows you how to write stored procedures and shares the implementation details of Stored Procedures in MySQL 5.0. Check back for white papers on Triggers, Views, and Information Schema.
By Arjen Lentz | 2005.03.16
People often ask me about which MySQL version they should use, whether they should consider upgrading, what to do when they find a bug, and so on. Though these things are covered in the MySQL Reference Manual and other places, this article aims to cover all the essentials in the one place.
By Arjen Lentz | 2005.02.15
As news about MySQL Network is presented in the press, MySQL's Community Relations Manager Arjen Lentz explains what it all means for you, the MySQL Community, including developers.
By Alex Davies | 2005.02.08
This HOWTO was designed for a classic setup of two servers behind a loadbalancer. The aim is to have true redundancy - either server can be unplugged and yet the site will remain up.
At the end of January 2005 a new worm-like malware named Forbot spread across the Internet, targeting poorly configured MySQL installations and exploiting them to gain access to the Windows host machines. MySQL takes security very seriously and we are working on a set of proactive services to help alert you to bugs, security issues and new features.
Please read the security alert about the UDF Worm that can infect MySQL servers running on Microsoft Windows with poor firewall and password security. MySQL takes security very seriously and we are working on a set of proactive services to help alert you to bugs, security issues and new features.
By Arjen Lentz | 2005.01.09
Behind the software of MySQL AB are of course the people. The MySQL developers, and the many other colleagues around them, are the ones who are making it all happen: new features, bug fixes, support, etc. Some of you may have met a few of them already, either at a previous MySQL Users Conference, or another occasion. As Community Relations Manager, I recently had the privilege of meeting all our developers at an internal company meeting in Malta, and this seemed like the perfect opportunity to start some interviews. In this series, I aim to show you the faces of at least some of these people.
By Arjen Lentz | 2004.12.22
It often appears that proponents of open source believe that open source does not actually require much in terms of marketing effort or product development. Seen as a form of evangelism, the open source message is regarded to be so compelling that, once delivered, the audience will "see the light" and convert. In this article, Arjen Lentz explores open source in the real world.
By John David Duncan | 2004.12.09
The MySQL database server features a distinctive modular architecture. The core "upper level" features of the server, such as the network layer, SQL parser, and query optimizer, are separated from the underlying data storage by a well-defined interface. Adding a storage engine to MySQL is a fairly straightforward task, and in this article John David Duncan explains how to get started with your own storage engine.
By Guilhem Bichot | 2004.11.24
Guilhem Bichot shows how to use mysqldump and the MySQL binary log to take incremental backups that can be used to recover from various catastrophes that may disrupt your database server.
By Trudy Pelzer and Jim Winstead | 2004.11.24
We've covered the major features in 4.1, now we wrap up our 'New in 4.1' series with an article about all of the little features. But don't let their small size fool you, some of these features may be just what you've been needing from your database server.
By Trudy Pelzer | 2004.11.18
Subqueries are another way to get data from multiple tables using a single query, and MySQL 4.1 includes support for this standard SQL construct. Trudy Pelzer explains what this allows you to do, along with examples.
By Ulf Wendel | 2004.11.15
MaxDB is ready for the Web! Or should I say ready for beginners? PHP is known as the basic of the web. Rasmus Lerdorf, the inventor of the popular web scripting language PHP used the comparison with BASIC to describe some of the strengths of PHP, the ease of use and the ease of learning. On MySQL ComCon Europe in Frankfurt (8-10.11.2004) a native PHP extension for MaxDB was announced that brings the power of MaxDB to all PHP users. So far MaxDB could only be accessed from PHP via ODBC, but now PHP has gained access to the full power of MaxDB through the new MaxDB extension.
By Trudy Pelzer | 2004.10.07
We continue our tour of new and improved features in 4.1 with a look at the changes to the temporal (date and time related) functionality, including support for fractional seconds, time zones, and a small army of new functions for slicing and dicing temporal information.
By Harrison Fisk | 2004.10.01
In another look at a new 4.1 feature, Harrison Fisk explains the benefits (and trade-offs) of the new server-side prepared statements and the support for it from various programming languages.
For successful migration of enterprise databases running on Oracle, SQL Server, Informix and Sybase to MySQL, you have to choose tools that automate the entire migration process and avoid the risks and hidden costs associated with partial conversion. Dmitry Tolpeko of Ispirer Systems Ltd. explains the issues in migrating to MySQL, and takes a look at some tools to help the process.
A new feature just introduced with MySQL 4.1.5 is a totally revamped installer for the Microsoft Windows platform. Michael G. Zinner explains the new installer and how you can use it to get MySQL up and running even more quickly on Windows.
We continue our tour of new features in MySQL 4.1 with a look at the extended character set handling, including support for Unicode. The article by Jim Winstead also includes a technique for handling UTF-8 data in web forms that copes with broken browser implementations.
In this article, Anders Karlsson takes a look at the new spatial extensions in MySQL 4.1, which allow for easier manipulation and storage of spatial data in geographic information system (GIS) and non-GIS applications.
Michael "Monty" Widenius is the CTO and co-founder of MySQL AB, and the original developer of much of the MySQL code base. Before Monty went into hiding to dive into work on new features for MySQL 5.0 (and spend time with his newborn daughter), we caught up with him on MySQL 4.1 and the state of the company from his point of view.
By Luke Welling and Laura Thomson | 2004.08.11
In this sample chapter from MySQL Tutorial, published by MySQL Press, authors Luke Welling and Laura Thomson explain the basics of transactions, and how the InnoDB storage engine can be used to achieve ACID compliance.
By Peter Gulutzan | 2004.08.06
Peter Gulutzan takes a behind-the-scenes look at the full-text searching features in MySQL 4.1, including features and quirks not (yet) documented in the reference manual, and the complete default stopword list.
By David Simpson (www.dotcomsolutionsinc.net) | 2004.07.19
David Simpson describes the procedures involved with migrating a FileMaker 6 database running on Windows to a MySQL database running on any platform. Additional info is included regarding changes to this procedure which are required to convert FileMaker 7 to MySQL.
By Mike Hillyer | 2004.07.07
Developers often ask for tools that can be used to convert an Access database to MySQL (or convert an MSSQL database to MySQL), without realizing that there is more to migrating an application to MySQL than simply converting data. This article covers the basics of migrating an application from an Access or SQL Server database to MySQL. You can also discuss migration issues on the beta MySQL Forums.
By Alan Walker and Mike Benzinger | 2004.06.18
Alan Walker and Mike Benzinger of Sabre Holdings share a new pre-compiler for writing C/C++ applications with embedded SQL they developed when making MySQL part of their open source strategy for the leading travel reservation system in the world.
By Mike Hillyer | 2004.06.02
Normalizing your data is the most effective way to decrease storage requirements and increase data integrity. In this article, MySQL AB's Mike Hillyer covers the basics of data normalization.
By Jeremy Zawodny and Derek Balling | 2004.05.26
This sample chapter from High Performance MySQL covers Replication.
By Jeremy Zawodny and Derek Balling | 2004.05.19
This sample chapter from High Performance MySQL covers server performance tuning.
By Mike Hillyer | 2004.05.12
In this article, Mike Hillyer explains the SET datatype, one of the less-well-known MySQL datatypes that could help you optimize your applications. The SET datatype is a string type, but is often referred to as a complex type due to the increased complexity involved in implementing them. A SET field can hold any number of strings from a predefined list of strings specified during table creation.
By Arjen Lentz | 2004.05.05
In this part of the series, we compare key aspects of the most popular storage engines, and provide you with guidelines and practical examples to help you decide which engine may be best suited for a particular purpose.
By Arjen Lentz | 2004.04.28
MySQL Server features a concept called storage engines, or table types. The server and, in fact, the developer, can choose how and where a database table is to be stored. Programmatically this is nothing special; it is normal practice to divide a program into modules and layers. But it is unique for a DBMS (Database Management System) because a developer or, even, a DBA (Database Administrator) is traditionally insulated from the physical storage methods that the database server may employ. How the data is stored really does not concern them, as the server just takes care of everything. That being the case, a developer or DBA could benefit from knowing a bit more about such things as it may help them to optimize applications. This is an angle that may be applied to many aspects of database servers, but in this article we'll focus on the storage engines.
By Arjen Lentz | 2004.04.06
MySQL Server features a concept called storage engines, or table types. The server and, in fact, the developer, can choose how and where a database table is to be stored. Programmatically this is nothing special; it is normal practice to divide a program into modules and layers. But it is unique for a DBMS (Database Management System) because a developer or, even, a DBA (Database Administrator) is traditionally insulated from the physical storage methods that the database server may employ. How the data is stored really does not concern them, as the server just takes care of everything. That being the case, a developer or DBA could benefit from knowing a bit more about such things as it may help them to optimize applications. This is an angle that may be applied to many aspects of database servers, but in this article we'll focus on the storage engines.
By Mike Hillyer | 2004.01.22
Visual Basic can be very loose with it's data types. If you want to avoid worrying about which type of data is coming from your database, you can simply not specify a datatype when you declare a variable, which defaults the datatype to variant. The variant should be avoided whenever possible, as it can be very CPU and memory intensive. This article demonstrates the different MySQL and VB6 datatypes and how they correlate.
By Mike Hillyer | 2004.01.22
One of the most common sources of trouble for the beginning VB / MySQL developer seems to revolve around which cursor location to use. Related to the cursor location problem is the choice of cursor type and lock type. The purpose of this article is to assist the Visual Basic developer in choosing the proper cursor location, cursor type, and lock type to use when programming Visual Basic (or VB) applications that use MySQL as a back-end database through ADO and Connector/ODBC (MyODBC).
By Mike Hillyer | 2004.01.22
Mike Hillyer explains why he thinks Visual Basic and MySQL are an ideal combination for application development, and the motivation for his continuing series of articles on the subject.
By Mike Hillyer | 2003.12.02
Mike Hillyer explains how to work with BLOB columns using the ADO 2.5 stream object.
