| CARVIEW |
Select Language
HTTP/2 302
server: nginx
date: Mon, 22 Dec 2025 18:53:34 GMT
content-type: text/plain; charset=utf-8
content-length: 0
x-archive-redirect-reason: found capture at 20090201194715
location: https://web.archive.org/web/20090201194715/https://dev.mysql.com/tech-resources/articles/
server-timing: captures_list;dur=0.526817, exclusion.robots;dur=0.053462, exclusion.robots.policy;dur=0.043069, esindex;dur=0.009010, cdx.remote;dur=23.134519, LoadShardBlock;dur=132.024709, PetaboxLoader3.datanode;dur=97.442905
x-app-server: wwwb-app246-dc8
x-ts: 302
x-tr: 218
server-timing: TR;dur=0,Tw;dur=0,Tc;dur=0
set-cookie: wb-p-SERVER=wwwb-app246; path=/
x-location: All
x-as: 14061
x-rl: 0
x-na: 0
x-page-cache: MISS
server-timing: MISS
x-nid: DigitalOcean
referrer-policy: no-referrer-when-downgrade
permissions-policy: interest-cohort=()
HTTP/2 200
server: nginx
date: Mon, 22 Dec 2025 18:53:34 GMT
content-type: text/html
x-archive-orig-date: Sun, 01 Feb 2009 19:47:13 GMT
x-archive-orig-server: Apache/2.0.58 (Unix) mod_ssl/2.0.58 OpenSSL/0.9.7f
x-archive-orig-expires: Thu, 19 Nov 1981 08:52:00 GMT
x-archive-orig-cache-control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
x-archive-orig-pragma: no-cache
x-archive-orig-connection: close
x-archive-guessed-content-type: text/html
x-archive-guessed-charset: utf-8
memento-datetime: Sun, 01 Feb 2009 19:47:15 GMT
link: ; rel="original", ; rel="timemap"; type="application/link-format", ; rel="timegate"
content-security-policy: default-src 'self' 'unsafe-eval' 'unsafe-inline' data: blob: archive.org web.archive.org web-static.archive.org wayback-api.archive.org athena.archive.org analytics.archive.org pragma.archivelab.org wwwb-events.archive.org
x-archive-src: 51_8_20090201144137_crawl102-c/51_8_20090201194628_crawl103.arc.gz
server-timing: captures_list;dur=0.611634, exclusion.robots;dur=0.019167, exclusion.robots.policy;dur=0.007640, esindex;dur=0.010046, cdx.remote;dur=7.303456, LoadShardBlock;dur=152.795217, PetaboxLoader3.datanode;dur=142.850764, load_resource;dur=82.336884, PetaboxLoader3.resolve;dur=29.445279
x-app-server: wwwb-app246-dc8
x-ts: 200
x-tr: 394
server-timing: TR;dur=0,Tw;dur=0,Tc;dur=0
x-location: All
x-as: 14061
x-rl: 0
x-na: 0
x-page-cache: MISS
server-timing: MISS
x-nid: DigitalOcean
referrer-policy: no-referrer-when-downgrade
permissions-policy: interest-cohort=()
content-encoding: gzip
MySQL :: Developer Articles
Skip navigation links
Developer Articles
by Robin Schumacher
Prior to MySQL 5.1, it wasn’t all that easy to find the worst running SQL on a MySQL instance. And truth be told, MySQL still has a ways to go before it’s an effortless process. But, the good news is there are some new aids in MySQL 5.1 and MySQL Enterprise that do make it more efficient to find and troubleshoot bad SQL code that’s hiding inside a MySQL instance. Let’s take a quick tour through these new features and see what help they provide.
by Lenz Grimmer
A year ago this past week (on January 16, 2008), Sun Microsystems announced a historic deal to acquire MySQL AB for a billion dollars. Since then, MySQL-ers (aka Sun Dolphins) have settled in with Sun folks. While Sun has had an influence on MySQL, MySQL has also had an influence on several projects within "Sun Classic". Over this week, we hope to explore some of the projects around Sun which use MySQL and how the acquisition has helped bring us all closer together. Today we talk to Allan Packer, Principal Engineer in the Performance Technologies group at Sun Microsystems and team lead for the MySQL Performance & Scalability Project.
by Duleepa "Dups" Wijayawardhana
A year ago this past week (on January 16, 2008), Sun Microsystems announced a historic deal to acquire MySQL AB for a billion dollars. Since then, MySQL-ers (aka Sun Dolphins) have settled in with Sun folks. While Sun has had an influence on MySQL, MySQL has also had an influence on several projects within "Sun Classic". Over this week, we hope to explore some of the projects around Sun which use MySQL and how the acquisition has helped bring us all closer together. Today we talk to Neelakanth Nadgir in the Sun/MySQL Performance Team about MySQL and ZFS, the revolutionary file system included with Solaris and OpenSolaris operating systems from Sun.
by Lenz Grimmer
A year ago this past week (on January 16, 2008), Sun Microsystems announced a historic deal to acquire MySQL AB for a billion dollars. Since then, MySQL-ers (aka Sun Dolphins) have settled in with Sun folks. While Sun has had an influence on MySQL, MySQL has also had an influence on several projects within "Sun Classic". Over this week, we hope to explore some of the projects around Sun which use MySQL and how the acquisition has helped bring us all closer together. Today we talk to Detlef Ulherr and Thorsten Fruehauf, engineers working on Solaris Cluster and its Open Source sibling, Open HA Cluster.
by Duleepa "Dups" Wijayawardhana
A year ago this past week (on January 16, 2008), Sun Microsystems announced a historic deal to acquire MySQL AB for a billion dollars. Since then, MySQL-ers (aka Sun Dolphins) have settled in with Sun folks. While Sun has had an influence on MySQL, MySQL has also had an influence on several projects within "Sun Classic". Over this week, we hope to explore some of the projects around Sun which use MySQL and how the acquisition has helped bring us all closer together. Today we talk to Vince Carbone in Sun's Performance Technology Group about MySQL with DTrace, the dynamic tracing application that is part of Solaris and OpenSolaris and set to be a hot topic at the 2009 MySQL User Conference.
by Lenz Grimmer
Born in Northern Norway 41 years ago and Lars has lived in Trondheim for the last 22 years. He is a Physicist by education, has a master degree on semiconductor heterojunctures and has earned a PhD on high temperature superconductors. He worked briefly on nuclear power fuel optimization and petroleum related rock mechanics before joining Clustra in the year 2000, which was acquired by Sun Microsystems in 2002. Clustra was a database software vendor that specialized in clustered, high-availability databases that were required by telecoms and service providers.
by Duleepa "Dups" Wijayawardhana, MySQL
Stewart Smith, a former member of the MySQL Cluster team recently decided to move on and work as a programmer on the Drizzle project. We wanted to catch with Stewart on both MySQL Cluster on Windows and what's he up to now.
by Lenz Grimmer
Masood Mortazavi is an Engineering Manager at the Sun Database Group. After the acquisition of MySQL, and along with the rest of Sun's original database technology group, he joined the MySQL organization to form the larger Sun Database Group. In this interview, Masood talks with Lenz about the flexibility and diversity of Sun as a workplace, his life prior to joining Sun and his current assignment to improve the MySQL code contribution process.
by Duleepa "Dups" Wijayawardhana
Alexander "Salle" Keremidarski works as the Manager of EMEA Support for MySQL and is one of MySQL's longest serving employees. This isn't Salle's first interview on the Devzone, but seeing as how it's been a couple of years, we thought we'd catch up with Salle and see how things are going.
by Lenz Grimmer
Ignacio "Iggy" Galarza, Jr. is a developer at the MySQL Connectors Team. Lenz talked with him about working for a distributed company, a team with the interesting acronym "WTF" and other nerdy things.
by Volker Oboda, Managing Director - TeamDrive Systems GmbH
TeamDrive Systems provides smart collaboration software, a scalable platform and Internet services, which enable users to build millions of micro-social networks and/or virtualize their own documents to share (sync) among their personal devices as well as among their friends. TeamDrive 2.0 is both software and a service. The smart client software is intuitive to use, watches folders in the file system and enables automatic synchronization, automatic versioning and automatic encryption, providing privacy and security for personal and corporate workspaces without any necessity of an own server and enhanced IT infrastructure.
by Lenz Grimmer
Adam has been in IT now for more than a quarter of a century, variously as a programmer, systems analyst, database admin and consultant. The first job Adam had was writing software for cash registers in assembler, and back end software in C and COBOL on UNIX. Adam is active in a number of open source projects and is the admin of dotProject. He now works in the web team which is responsible for maintaining the mysql.com web sites.
by Ryan Thiessen, DBA Lead at Big Fish Games
Big Fish Games, Inc. develops, publishes, and distributes casual games through its website at https://bigfishgames.com. It offers downloadable games for PC/Mac; and online games, including puzzle, card, and word games. The company was founded in 2002 and is based in Seattle, Washington.
by Christopher Lavigne, Founding Partner at Breadboard BI, Inc.
Breadboard BI provides affordable business intelligence (BI), data integration, and general software application development consulting. We also offer a suite of customizable BI modules that form a modular and scalable enterprise solution. Our mission is to provide products and service that enable companies to reduce costs, improve sales, and satisfy regulatory requirements.
by Fourat Zourai, Software Engineer for TriTUX.com
TriTUX is based in Tunis, Tunisia. Founded in 2006 as Systems Analysis and Weblication Development, TriTUX is providing high-quality professional services for achieving flexible, creative and scalable systems. TriTUX engineers is a team of jack-of-all-trades, possessing intimate knowledge in networking, eXtreme programming, GNU/Linux and scalable solutions.
by Mark Matthews
MySQL Performance Tuning is always a popular topic for DBAs and Developers. Traditionally, database tuning has required manual effort and custom scripts. MySQL Query Analyzer aims to minimize the manual effort, with easy-to-use tools to help find-n-fix problem queries. In this interview, we talk with Mark Matthews, to get an architects view of the product.
by Ernest Bonat, Ph.D.
Understanding and programming MySQL data load into the DataGridView control is a must for Windows Application Developers today. Many times, in real production environment the end-users need to see a result set of data to make daily business decisions. The main question is about how many records they need to see when the control gets loaded. The answer of the question is defined by the client's business rules. At this point application performance is a critical issue for Application Developers. In this paper I'll show you how load MySQL data into the DataGridView control using VB.NET bound and unbound programming modes. A timer class named Stopwatch for VB.NET will be used to measure the execution time between theses two programming modes.
by Guy Adams, Chief Technical Officer at Parallel Ltd.
Our product historically used an Oracle backend, and after implementing simple date based range partitioning we got a 20-30 time performance increase in our queries. We had used MySQL in other more minor products we had developed, but we couldn’t move to it until partitioning was implemented. In Dec 05 we started to test MySQL partitioning, where partitioning syntax was supported but the optimizations were not in place. As soon as the optimizations were put in, we were able to run a side by side comparison against unpartitioned tables and Oracle partitions. Not only did we get in MySQL a 30+ times performance increase, but the MySQL version ran nearly twice as fast as the same Oracle configuration in a like for like test.
by Guilhem Bichot
The MySQL project switched from Bitkeeper to another revision control system, Bazaar, in June 2008. My colleague Daniel Fischer wrote an excellent article describing how to get MySQL's code by using Bazaar, and how to compile a MySQL server binary from this. Here I am going to build on this knowledge and take it further, to show you how to modify MySQL's code for your needs, and share your modifications.
by Robin Schumacher
Unless you’ve been on a desert island lately, you probably know that the area of data warehousing/analytics/business intelligence (BI) is going gangbusters these days. Not many years ago, when industry analyst groups polled CIO’s on their top priorities, BI was #10. Then it jumped to #2 in 2006, and today it’s #1 according to Gartner group. It’s no mystery as to why this is: it’s a cut-throat economy out there in all industries and smart businesses need to tap their internal data to make critical business decisions, both tactically and strategically, to stay ahead of the pack.
by Corrado Pandiani
If you are a football (soccer) fan, then F.C. Internazionale may mean something to you. Or perhaps its more common name, Inter Milan sounds familiar? Next in our Use Case Competition articles, here's Corrado Pandiani's experience, about using MySQL to power inter.it, one of the most popular soccer sites in Europe. Not only that, but inter.it is using the latest MySQL 5.1 technology.
by Gregory J. Haase
First in our series of Use Case reports on new MySQL 5.1 features, we have Greg Haase of Lotame describing his innovative use of partitioning. Usually, the creators of new applications are unaware of the various tweaking that users may submit their features to, in order to achieve surprising results. We in the community team are usually on the tweaking side, and we like to surprise developers with (positive) side effects of the existing features. This time, we were caught by surprise. Greg's usage of partitioning and events is really cool!
by Robin Schumacher
I still remember the day. I was working for a large systems integrator on a very major account, and had responsibility for some DB2 databases, but also had the unfortunate duty of also taking care of some legacy IMS databases (hierarchical IBM databases used quite a lot ‘back in the day’), which I knew next to nothing about. One morning I was asked to make a small change to a very large and prominent IMS database – just remove one record – what could go wrong? The guy who knew IMS real well was gone so I put together a program to do the job (yes, you actually had to write a program to do it), and ran it after hours. I came in the next day and tried to access some records in the database. Nothing. All gone, except for – ta-da – the one record I wanted to remove! At the instant I realized my mistake, I was acutely aware of two things: (1) I was in serious trouble if I didn’t have a backup, and (2) I was in desperate need of a complete change in underwear.
by Kaj Arnö
MySQL Community Team launches a competition for the users of new features of MySQL 5.1. Submit your MySQL 5.1 Use Case Report to community(at)mysql.com by 31 August 2008 and win!
by Daniel Fischer
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
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)
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
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
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
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
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
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
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
by Colin Charles
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
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
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
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
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
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
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
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.
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
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 Peter Lavin
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 Robin Schumacher
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 Kaj Arnö
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
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
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
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
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
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
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ö
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
Damien Seguy had an interesting observation on my use of self joins for generating rolling sums.
by Giuseppe Maxia
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
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
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.
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
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
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
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
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
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
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
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
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
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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 Ulf Wendel
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 Zack Urlocker
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 Harrison Fisk, Alex Davies
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
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
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
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
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
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 https://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
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
A few years ago, I wrote an article entitled "The Foundation of Excellent Performance" (still available at https://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
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
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
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
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
MySQL version 5.1.5 has functions for searching and changing XML documents. This article has examples.
by Carsten Pedersen
MySQLs Certification Manager outlines the upcoming changes in the MySQL certification program, and why those changes were made.
by Chris Shiflett
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
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
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
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
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
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
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
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.
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
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
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
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
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
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 https://www.promysql.com/
by Robin Schumacher
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
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 Russell J.T. Dyer
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
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 Robert Schneider
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 https://www.mysql-tcr.com/
by Arjen Lentz
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Guilhem Bichot shows how to use
by Trudy Pelzer and Jim Winstead
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
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
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
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
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.
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.
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.
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
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
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)
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
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
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
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
This sample chapter from High Performance MySQL covers Replication.
by Jeremy Zawodny and Derek Balling
This sample chapter from High Performance MySQL covers server performance tuning.
by Mike Hillyer
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
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
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
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
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
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
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
Mike Hillyer explains how to work with BLOB columns using the ADO 2.5 stream object.
The world's most popular open source database
MySQL Enterprise
Related pages:
Developer Articles 
Another Look at MySQL 5.1’s SQL Diagnostic Tools
(2009.01.26)by Robin Schumacher
Prior to MySQL 5.1, it wasn’t all that easy to find the worst running SQL on a MySQL instance. And truth be told, MySQL still has a ways to go before it’s an effortless process. But, the good news is there are some new aids in MySQL 5.1 and MySQL Enterprise that do make it more efficient to find and troubleshoot bad SQL code that’s hiding inside a MySQL instance. Let’s take a quick tour through these new features and see what help they provide.
Allan Packer on performance tuning: Scaling MySQL
(2009.01.22)by Lenz Grimmer
A year ago this past week (on January 16, 2008), Sun Microsystems announced a historic deal to acquire MySQL AB for a billion dollars. Since then, MySQL-ers (aka Sun Dolphins) have settled in with Sun folks. While Sun has had an influence on MySQL, MySQL has also had an influence on several projects within "Sun Classic". Over this week, we hope to explore some of the projects around Sun which use MySQL and how the acquisition has helped bring us all closer together. Today we talk to Allan Packer, Principal Engineer in the Performance Technologies group at Sun Microsystems and team lead for the MySQL Performance & Scalability Project.
Neelakanth Nadgir on MySQL and ZFS: A File System Revolution
(2009.01.21)by Duleepa "Dups" Wijayawardhana
A year ago this past week (on January 16, 2008), Sun Microsystems announced a historic deal to acquire MySQL AB for a billion dollars. Since then, MySQL-ers (aka Sun Dolphins) have settled in with Sun folks. While Sun has had an influence on MySQL, MySQL has also had an influence on several projects within "Sun Classic". Over this week, we hope to explore some of the projects around Sun which use MySQL and how the acquisition has helped bring us all closer together. Today we talk to Neelakanth Nadgir in the Sun/MySQL Performance Team about MySQL and ZFS, the revolutionary file system included with Solaris and OpenSolaris operating systems from Sun.
Detlef Ulherr and Thorsten Früauf on Open HA Cluster: Making MySQL highly available on Solaris
(2009.01.20)by Lenz Grimmer
A year ago this past week (on January 16, 2008), Sun Microsystems announced a historic deal to acquire MySQL AB for a billion dollars. Since then, MySQL-ers (aka Sun Dolphins) have settled in with Sun folks. While Sun has had an influence on MySQL, MySQL has also had an influence on several projects within "Sun Classic". Over this week, we hope to explore some of the projects around Sun which use MySQL and how the acquisition has helped bring us all closer together. Today we talk to Detlef Ulherr and Thorsten Fruehauf, engineers working on Solaris Cluster and its Open Source sibling, Open HA Cluster.
Vince Carbone on MySQL and DTrace: Dynamically tracing better performance
(2009.01.19)by Duleepa "Dups" Wijayawardhana
A year ago this past week (on January 16, 2008), Sun Microsystems announced a historic deal to acquire MySQL AB for a billion dollars. Since then, MySQL-ers (aka Sun Dolphins) have settled in with Sun folks. While Sun has had an influence on MySQL, MySQL has also had an influence on several projects within "Sun Classic". Over this week, we hope to explore some of the projects around Sun which use MySQL and how the acquisition has helped bring us all closer together. Today we talk to Vince Carbone in Sun's Performance Technology Group about MySQL with DTrace, the dynamic tracing application that is part of Solaris and OpenSolaris and set to be a hot topic at the 2009 MySQL User Conference.
Interview with Lars Heill, Release Engineering Manager
(2008.12.18)by Lenz Grimmer
Born in Northern Norway 41 years ago and Lars has lived in Trondheim for the last 22 years. He is a Physicist by education, has a master degree on semiconductor heterojunctures and has earned a PhD on high temperature superconductors. He worked briefly on nuclear power fuel optimization and petroleum related rock mechanics before joining Clustra in the year 2000, which was acquired by Sun Microsystems in 2002. Clustra was a database software vendor that specialized in clustered, high-availability databases that were required by telecoms and service providers.
Interview with Stewart Smith, Drizzle/MySQL Cluster
(2008.12.17)by Duleepa "Dups" Wijayawardhana, MySQL
Stewart Smith, a former member of the MySQL Cluster team recently decided to move on and work as a programmer on the Drizzle project. We wanted to catch with Stewart on both MySQL Cluster on Windows and what's he up to now.
Interview with Masood Mortazavi, MySQL Engineering Manager at Sun
(2008.12.17)by Lenz Grimmer
Masood Mortazavi is an Engineering Manager at the Sun Database Group. After the acquisition of MySQL, and along with the rest of Sun's original database technology group, he joined the MySQL organization to form the larger Sun Database Group. In this interview, Masood talks with Lenz about the flexibility and diversity of Sun as a workplace, his life prior to joining Sun and his current assignment to improve the MySQL code contribution process.
Interview with Alexander "Salle" Keremidarski, 2008
(2008.12.09)by Duleepa "Dups" Wijayawardhana
Alexander "Salle" Keremidarski works as the Manager of EMEA Support for MySQL and is one of MySQL's longest serving employees. This isn't Salle's first interview on the Devzone, but seeing as how it's been a couple of years, we thought we'd catch up with Salle and see how things are going.
Interview with Ignacio "Iggy" Galarza, Jr., developer at the MySQL Connectors team
(2008.12.02)by Lenz Grimmer
Ignacio "Iggy" Galarza, Jr. is a developer at the MySQL Connectors Team. Lenz talked with him about working for a distributed company, a team with the interesting acronym "WTF" and other nerdy things.
Using the Pluggable API for TeamDrive
(2008.11.28)by Volker Oboda, Managing Director - TeamDrive Systems GmbH
TeamDrive Systems provides smart collaboration software, a scalable platform and Internet services, which enable users to build millions of micro-social networks and/or virtualize their own documents to share (sync) among their personal devices as well as among their friends. TeamDrive 2.0 is both software and a service. The smart client software is intuitive to use, watches folders in the file system and enables automatic synchronization, automatic versioning and automatic encryption, providing privacy and security for personal and corporate workspaces without any necessity of an own server and enhanced IT infrastructure.
Interview with Adam Donnison, web developer at MySQL.com
(2008.11.25)by Lenz Grimmer
Adam has been in IT now for more than a quarter of a century, variously as a programmer, systems analyst, database admin and consultant. The first job Adam had was writing software for cash registers in assembler, and back end software in C and COBOL on UNIX. Adam is active in a number of open source projects and is the admin of dotProject. He now works in the web team which is responsible for maintaining the mysql.com web sites.
Logging Game Downloads With Partitioning
(2008.11.24)by Ryan Thiessen, DBA Lead at Big Fish Games
Big Fish Games, Inc. develops, publishes, and distributes casual games through its website at https://bigfishgames.com. It offers downloadable games for PC/Mac; and online games, including puzzle, card, and word games. The company was founded in 2002 and is based in Seattle, Washington.
Using MySQL 5.1 for Data Warehousing/Business Intelligence Overview
(2008.11.24)by Christopher Lavigne, Founding Partner at Breadboard BI, Inc.
Breadboard BI provides affordable business intelligence (BI), data integration, and general software application development consulting. We also offer a suite of customizable BI modules that form a modular and scalable enterprise solution. Our mission is to provide products and service that enable companies to reduce costs, improve sales, and satisfy regulatory requirements.
Using Partitioning for Data Warehousing at TriTUX.com
(2008.11.19)by Fourat Zourai, Software Engineer for TriTUX.com
TriTUX is based in Tunis, Tunisia. Founded in 2006 as Systems Analysis and Weblication Development, TriTUX is providing high-quality professional services for achieving flexible, creative and scalable systems. TriTUX engineers is a team of jack-of-all-trades, possessing intimate knowledge in networking, eXtreme programming, GNU/Linux and scalable solutions.
MySQL Query Analyzer: Interview with Mark Matthews
(2008.11.18)by Mark Matthews
MySQL Performance Tuning is always a popular topic for DBAs and Developers. Traditionally, database tuning has required manual effort and custom scripts. MySQL Query Analyzer aims to minimize the manual effort, with easy-to-use tools to help find-n-fix problem queries. In this interview, we talk with Mark Matthews, to get an architects view of the product.
Bound and Unbound DataGridView Control for MySQL 5.0/VB.NET 2008 Windows Applications
(2008.11.05)by Ernest Bonat, Ph.D.
Understanding and programming MySQL data load into the DataGridView control is a must for Windows Application Developers today. Many times, in real production environment the end-users need to see a result set of data to make daily business decisions. The main question is about how many records they need to see when the control gets loaded. The answer of the question is defined by the client's business rules. At this point application performance is a critical issue for Application Developers. In this paper I'll show you how load MySQL data into the DataGridView control using VB.NET bound and unbound programming modes. A timer class named Stopwatch for VB.NET will be used to measure the execution time between theses two programming modes.
Using Partitioning to Manage Satellite Networks
(2008.10.17)by Guy Adams, Chief Technical Officer at Parallel Ltd.
Our product historically used an Oracle backend, and after implementing simple date based range partitioning we got a 20-30 time performance increase in our queries. We had used MySQL in other more minor products we had developed, but we couldn’t move to it until partitioning was implemented. In Dec 05 we started to test MySQL partitioning, where partitioning syntax was supported but the optimizations were not in place. As soon as the optimizations were put in, we were able to run a side by side comparison against unpartitioned tables and Oracle partitions. Not only did we get in MySQL a 30+ times performance increase, but the MySQL version ran nearly twice as fast as the same Oracle configuration in a like for like test.
Advanced Bazaar for MySQL developers
(2008.09.16)by Guilhem Bichot
The MySQL project switched from Bitkeeper to another revision control system, Bazaar, in June 2008. My colleague Daniel Fischer wrote an excellent article describing how to get MySQL's code by using Bazaar, and how to compile a MySQL server binary from this. Here I am going to build on this knowledge and take it further, to show you how to modify MySQL's code for your needs, and share your modifications.
Data Warehousing with MySQL and Infobright
(2008.09.15)by Robin Schumacher
Unless you’ve been on a desert island lately, you probably know that the area of data warehousing/analytics/business intelligence (BI) is going gangbusters these days. Not many years ago, when industry analyst groups polled CIO’s on their top priorities, BI was #10. Then it jumped to #2 in 2006, and today it’s #1 according to Gartner group. It’s no mystery as to why this is: it’s a cut-throat economy out there in all industries and smart businesses need to tap their internal data to make critical business decisions, both tactically and strategically, to stay ahead of the pack.
FC Inter Milan Using MySQL 5.1 Partitioning and Event Scheduler
(2008.09.10)by Corrado Pandiani
If you are a football (soccer) fan, then F.C. Internazionale may mean something to you. Or perhaps its more common name, Inter Milan sounds familiar? Next in our Use Case Competition articles, here's Corrado Pandiani's experience, about using MySQL to power inter.it, one of the most popular soccer sites in Europe. Not only that, but inter.it is using the latest MySQL 5.1 technology.
Using Partitioning and Event Scheduler to Prune Archive Tables
(2008.09.05)by Gregory J. Haase
First in our series of Use Case reports on new MySQL 5.1 features, we have Greg Haase of Lotame describing his innovative use of partitioning. Usually, the creators of new applications are unaware of the various tweaking that users may submit their features to, in order to achieve surprising results. We in the community team are usually on the tweaking side, and we like to surprise developers with (positive) side effects of the existing features. This time, we were caught by surprise. Greg's usage of partitioning and events is really cool!
A Quick Look at MySQL 6.0’s New Backup
(2008.08.22)by Robin Schumacher
I still remember the day. I was working for a large systems integrator on a very major account, and had responsibility for some DB2 databases, but also had the unfortunate duty of also taking care of some legacy IMS databases (hierarchical IBM databases used quite a lot ‘back in the day’), which I knew next to nothing about. One morning I was asked to make a small change to a very large and prominent IMS database – just remove one record – what could go wrong? The guy who knew IMS real well was gone so I put together a program to do the job (yes, you actually had to write a program to do it), and ran it after hours. I came in the next day and tried to access some records in the database. Nothing. All gone, except for – ta-da – the one record I wanted to remove! At the instant I realized my mistake, I was acutely aware of two things: (1) I was in serious trouble if I didn’t have a backup, and (2) I was in desperate need of a complete change in underwear.
MySQL 5.1 Use Case Competition
(2008.07.18)by Kaj Arnö
MySQL Community Team launches a competition for the users of new features of MySQL 5.1. Submit your MySQL 5.1 Use Case Report to community(at)mysql.com by 31 August 2008 and win!
Getting started with Bazaar for MySQL code
(2008.06.24)by Daniel Fischer
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.
Falcon storage engine in depth
(2008.06.18)by Yoshinori Matsunobu
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.
"Telephony is just yet another Internet application." - MySQL talks with Juha Heinänen
(2008.05.23)by MySQL Telecom Team (MySQL in Communications Blog)
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.
MySQL Workbench for Database Change Management
(2008.05.08)by Robin Schumacher
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.
A look at Falcon Diagnostic Tables
(2008.04.04)by Robin Schumacher
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.
How the MySQL Enterprise Upgrade Advisor Helps DBAs Avoid Being Bitten by Known Bugs
(2008.04.01)by Rob Young
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.
Why you want to be good at data modeling
(2008.03.27)by Robin Schumacher
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.
Reporting MySQL Internals with Information Schema plug-ins
(2008.02.21)by Roland Bouman
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.
MySQL Information Schema Plugins: the best kept secret of MySQL 5.1
(2008.02.12)by Roland Bouman
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.
A Q&A Session with Mårten Mickos, CEO of MySQL AB, about the Sun Acquisition
(2008.02.06)by Colin Charles
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.
MySQL 5.1 partitions in practice
(2007.12.19)by Giuseppe Maxia
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).
Using XML in MySQL 5.1 and 6.0
(2007.12.13)by Jon Stephens
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.
MySQL Failover Strategy using State Management, introducing MPP - Part 3
(2007.12.12)by Russell E Glaue
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.
Developing MySQL Applications with Eclipse CDT
(2007.11.26)by Mark Schoonover
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.
MySQL Failover Strategy using State Management, introducing MPP - Part 2
(2007.11.10)by Russell E Glaue
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.
MySQL Failover Strategy using State Management, introducing MPP - Part 1
(2007.11.01)by Russell E Glaue
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.
A look at MySQL on ZFS
(2007.10.26)by John David Duncan
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.
Load and Search MySQL Data Using VB.NET 2005 in Windows Applications
(2007.10.18)by Ernest Bonat, Ph.D.
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.
CTO Interview: Christopher Cordray, Co-Founder and CTO, ScienceLogic
(2007.10.05)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.
Paul DuBois - Writing MySQL Programs Using C
(2007.09.28)by Paul DuBois
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.
Using MySQL with PDO
(2007.09.18)by Peter Lavin
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.
A Primer on Falcon Tablespaces
(2007.09.18)by Robin Schumacher
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.
How MySQL Treats Security Vulnerabilities
(2007.09.18)by Kaj Arnö
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.
MySQL 5.1 Article Recap
(2007.09.11)by Jay Pipes
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.
Preparing for MySQL 5.x Certification
(2007.09.10)by Mark Schoonover
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.
Migrating From MS Access To MySQL
(2007.08.22)by Christopher Keene
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.
Getting started with MySQL Proxy
(2007.08.17)by Giuseppe Maxia
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.
From Visions to Reality - an interview with David Axmark, Co-Founder of MySQL AB
(2007.08.02)by Lenz Grimmer
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.
How to write a successful patch
(2007.07.28)by Giuseppe Maxia
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.
The Clash of the DB Egos
(2007.07.26)by Kaj Arnö
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.
Follow Up on Rolling Sums - Self Joins vs User Variables
(2007.07.12)by Jay Pipes
Damien Seguy had an interesting observation on my use of self joins for generating rolling sums.
MySQL bugs processing explained
(2007.07.04)by Giuseppe Maxia
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.
MySQL as universal server
(2007.06.28)by Giuseppe Maxia
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.
3 Tips for Customizing MySQL Enterprise to Achieve Monitoring Best Practices
(2007.06.27)by Rob Young
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.
MySQL Data Loading with Lookup Tables
(2007.06.25)by Ernest Bonat, Ph.D.
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.
Rolling Sums in SQL - A Practical Example
(2007.06.21)by Jay Pipes
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...
MySQL on Windows? Absolutely!
(2007.06.13)by Robin Schumacher
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).
Interview with Jan Kneschke, Developer at MySQL AB
(2007.06.08)by Lenz Grimmer
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.
Debunking GROUP BY Myths
(2007.06.06)by Roland Bouman
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.
How Automated Updates Provided by MySQL Enterprise Can Save You Time
(2007.05.21)by Rob Young
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.
A Developer's Guide to the MySQL User's Conference
(2007.04.17)by Jay Pipes
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.
YouTube, Flickr, and Wikipedia to Share their Secrets of Success at the 2007 MySQL Conference & Expo
(2007.04.12)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."
Using the New MySQL Query Profiler
(2007.04.05)by Robin Schumacher
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.
A DBA's Guide to the MySQL User's Conference
(2007.03.13)by Robin Schumacher
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.
Daylight Saving Time Changes
(2007.03.13)by By Peter Gulutzan and Dmitri Lenev
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.
Define and Store MySQL ADO Connection String in VB.NET 2005
(2007.03.08)by Ernest Bonat, Ph.D.
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.
A Look at the PBXT Storage Engine
(2007.02.28)by Robin Schumacher
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?
Understanding the Falcon Transaction Storage Engine – Part 3
(2007.02.19)by Robin Schumacher
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.
Understanding the Falcon Transaction Storage Engine – Part 2
(2007.02.09)by Robin Schumacher
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.
Understanding the Falcon Transaction Storage Engine – Part 1
(2007.02.02)by Robin Schumacher
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.
Interview with Andrey "Poohie" Hristov, Developer at MySQL AB
(2007.01.18)by Lenz Grimmer
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.
Automating MySQL Best Practices Management
(2006.12.11)by Robin Schumacher
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.
Interview with Paddy Sreenivasan from Zmanda
(2006.11.17)by Colin Charles
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.
Beginning MYSQL 5 with Visual Studio.NET 2005
(2006.11.16)by Anil Mahadev
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.
MySQL Scale-Out With Application Partitioning
(2006.11.08)by Oli Sennhauser
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).
Interview with Brian Moon, from the Phorum project
(2006.09.11)by Jay Pipes
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...
Interview with Rohit Nadhani, Co-founder of Webyog
(2006.09.08)by Jay Pipes
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.
Tuning MySQL for eZ publish
(2006.08.24)by eZ Systems
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.
MySQL 5.1 New Features: MySQL Partitions
(2006.08.08)by Jon Stephens and Peter Gulutzan
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.
Interview with Stephan Uhrenbacher, Managing Director of Qype GmbH
(2006.08.04)by Lenz Grimmer
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.
Partitioning with Dates in MySQL 5.1
(2006.07.20)by Robin Schumacher
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.
Enforcing Foreign Keys Programmatically in MySQL
(2006.07.10)by Philippe Campos
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.
MySQL Cluster 5.0 ALTER TABLE In-Depth
(2006.07.06)by Martin Skold
In this Developers Zone article we take an in-depth look at how the ALTER TABLE command is implemented in MySQL Cluster 5.0.
MaxDB Synchronization at United Drugs' Annual Convention
(2006.06.03)by Mark Thomas and C.J. Collier
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.
Interview with Paul McCullagh, developer of the PrimeBase XT Storage Engine
(2006.06.02)by Lenz Grimmer
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.
MaxDB series: transactions
(2006.05.31)by Ulf Wendel
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.
My Dinner with Monty
(2006.05.31)by Zack Urlocker
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.
MySQL Clustering: Chapter 5 Performance
(2006.05.24)by Harrison Fisk, Alex Davies
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.
MySQL 5.0 - Ready for Prime Time Business Intelligence with Pentaho
(2006.05.23)Business intelligence is the key to fact-based decision making in the intelligent enterprise. Techniques and tools are designed to unlock knowledge from data.
More on MySQL 5.1 Partitioning
(2006.05.23)by Robin Schumacher
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.
A Look at the MySQL CSV Storage Engine
(2006.05.05)by Robin Schumacher
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.
Advanced MySQL Replication Techniques
(2006.04.24)by Giuseppe Maxia
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.
MySQL 5.1 New Features: MySQL Events
(2006.04.13)by Peter Gulutzan
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.
The MaxDB series on PlanetMySQL
(2006.03.31)by Ulf Wendel
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 https://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.
Interview with Ian Wilkes, Director of Operations at Linden Lab
(2006.03.03)by Lenz Grimmer
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.
Improving Database Performance with Partitioning
(2006.02.22)by Robin Schumacher
A few years ago, I wrote an article entitled "The Foundation of Excellent Performance" (still available at https://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.
Interview with David Heinemeier Hansson from Ruby on Rails
(2006.02.11)by Lenz Grimmer
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.
Accessing Distributed Data with the Federated Storage Engine
(2006.02.09)by Robin Schumacher
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.
Interview with Kai 'Oswald' Seidler from the XAMPP project
(2006.01.17)by Lenz Grimmer
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.
New Event Feature in MySQL 5.1.6
(2006.01.13)by Trudy Pelzer
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.
MySQL 5.1's new XML Functions
(2006.01.12)by Alexander Barkov and Peter Gulutzan
MySQL version 5.1.5 has functions for searching and changing XML documents. This article has examples.
MySQL 5.0 Certification Exams
(2006.01.03)by Carsten Pedersen
MySQLs Certification Manager outlines the upcoming changes in the MySQL certification program, and why those changes were made.
Essential PHP Security: Chapter 2, Forms and URLs
(2005.12.21)by Chris Shiflett
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".
Guaranteeing Data Integrity with MySQL 5.0
(2005.12.01)by Robin Schumacher
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.
MaxDB for SAP Hosting - Technical Whitepaper
(2005.11.24)by Ulf Wendel
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.
Stored Procedures in MySQL 5.0
(2005.11.17)by Carsten Pedersen
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.
Using BIRT To Report On Bugzilla in MySQL
(2005.11.16)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 »
Installing MySQL MaxDB Synchronization Manager
(2005.11.09)by Carl "C.J." Collier
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.
MySQL 5.0's Pluggable Storage Engine Architecture, Part 2: A Quick Test Drive
(2005.10.26)by Robin Schumacher
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.
MySQL 5.0's Pluggable Storage Engine Architecture, Part 1: An Overview
(2005.10.19)by Robin Schumacher
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
(2005.10.10)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".
Dispelling the Myths
(2005.10.05)by By Robin Schumacher and Arjen Lentz
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.
An Atlas for Ireland's Artists (using MySQL GIS)
(2005.09.18)by Daniel McAlister, CTO, Integrated Spatial Solutions Inc.
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.
The MySQL 5.0 Archive Storage Engine
(2005.09.06)by Robin Schumacher
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.
Managing Hierarchical Data in MySQL
(2005.08.17)by Mike Hillyer
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.
Interview with Marc Delisle
(2005.08.15)by Arjen Lentz
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.
Creating a DBA Dashboard for MySQL
(2005.08.05)by Scott Sanders and Teodor Danciu
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?
Pro MySQL, Chapter 6: Benchmarking and Profiling
(2005.08.03)by Michael Kruckenberg and Jay Pipes
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 https://www.promysql.com/
A Practical Look at the MySQL Query Cache
(2005.07.19)by Robin Schumacher
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.
Book Review: Beginning MySQL Database Design and Optimization
(2005.07.18)by Russell J.T. Dyer
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.
Book Review: MySQL Tutorial
(2005.07.18)by Russell J.T. Dyer
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.
Book Review: High Performance MySQL
(2005.07.18)by Russell J.T. Dyer
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.
MySQL Database Design and Tuning, Chapter 18: Case Study - Solving a broad Collection of Performance Problems
(2005.07.15)by Robert Schneider
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.
Embedding the MySQL Server Library
(2005.07.07)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.
MySQL: The Complete Reference, chapter 14: Security, Access Control, and Privileges
(2005.06.15)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 https://www.mysql-tcr.com/
Evaluating MySQL 5.0 Key Features
(2005.06.14)by Arjen Lentz
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 »
Dell Benchmark and Sizing Guide for MySQL Network
(2005.06.08)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 »
Interview with Joao Prado Maia
(2005.06.03)by Arjen Lentz
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.
Chapter 5: Joins, Temporary Tables, and Transactions
(2005.05.11)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.
Point-in-Time Data Recovery
(2005.04.26)by Russell Dyer
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.
MaxDB performance tuning primer
(2005.04.18)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.
Choosing the Right MySQL Version and Reporting Bugs
(2005.04.11)by Arjen Lentz
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.
MySQL 5.0 Triggers
(2005.03.24)by Peter Gulutzan
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.
MySQL 5.0 Views
(2005.03.23)by Trudy Pelzer
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.
MySQL 5.0 Data Dictionary
(2005.03.23)by Trudy Pelzer
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.
MySQL 5.0 Stored Procedures
(2005.03.16)by Peter Gulutzan
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.
Choosing the Right MySQL Version and Reporting Bugs
(2005.03.16)by Arjen Lentz
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.
MySQL Network and You
(2005.02.15)by Arjen Lentz
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.
MySQL Cluster: Two webserver setup
(2005.02.08)by Alex Davies
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.
Securing a MySQL Server on Windows
(2005.02.01)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.
Security Alert
(2005.01.27)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.
Interview: Oleksandr "Sanja" Byelkin
(2005.01.09)by Arjen Lentz
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.
What Makes a Good Product
(2004.12.22)by Arjen Lentz
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.
Creating a new storage engine for MySQL
(2004.12.09)by John David Duncan
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.
Recovering from Crashes
(2004.11.24)by Guilhem Bichot
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.
New in 4.1: All the Little Features
(2004.11.24)by Trudy Pelzer and Jim Winstead
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.
New in 4.1: Structure Means Subqueries: Nesting SELECTs
(2004.11.18)by Trudy Pelzer
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.
MaxDB & PHP - Ready for the Web!
(2004.11.15)by Ulf Wendel
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.
New in 4.1: Temporal Functionality
(2004.10.07)by Trudy Pelzer
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.
New in 4.1: Prepared Statements
(2004.10.01)by Harrison Fisk
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.
New in 4.1: The all-new MySQL Server Windows Installer
(2004.09.22)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.
Migrating to MySQL - Eliminating Risks and Hidden Costs Using Specialized Migration Software
(2004.09.22)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.
New in 4.1: Unicode and Other Funny Characters
(2004.09.17)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.
New in 4.1: GIS and Spatial Extensions with MySQL
(2004.09.09)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.
Interview: Catching up with Monty
(2004.08.19)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.
MySQL Tutorial, Chapter 10: Using Transactions with InnoDB Tables
(2004.08.11)by Luke Welling and Laura Thomson
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.
The Full-Text Stuff That We Didn't Put In The Manual
(2004.08.06)by Peter Gulutzan
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.
Database Migration from FileMaker to MySQL
(2004.07.19)by David Simpson (www.dotcomsolutionsinc.net)
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.
Migrating from Microsoft SQL Server and Access to MySQL
(2004.07.07)by Mike Hillyer
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.
An Open Pre-Compiler for Embedded SQL
(2004.06.18)by Alan Walker and Mike Benzinger
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.
An Introduction to Database Normalization
(2004.06.02)by Mike Hillyer
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.
High Performance MySQL, Chapter 7: Replication
(2004.05.26)by Jeremy Zawodny and Derek Balling
This sample chapter from High Performance MySQL covers Replication.
High Performance MySQL, Chapter 6: Server Performance Tuning
(2004.05.19)by Jeremy Zawodny and Derek Balling
This sample chapter from High Performance MySQL covers server performance tuning.
The MySQL SET Datatype
(2004.05.12)by Mike Hillyer
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.
MySQL Storage Engine Architecture, Part 3: Details and Comparison
(2004.05.05)by Arjen Lentz
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.
MySQL Storage Engine Architecture, Part 2: An In-Depth Look
(2004.04.28)by Arjen Lentz
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.
MySQL Storage Engine Architecture, Part 1: An Overview
(2004.04.06)by Arjen Lentz
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.
CursorTypes, LockTypes, and CursorLocations
(2004.01.22)by Mike Hillyer
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).
Visual Basic / MySQL Datatypes
(2004.01.22)by Mike Hillyer
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.
Why VB/MySQL
(2004.01.22)by Mike Hillyer
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.
Accessing MySQL BLOB columns using Visual Basic 6
(2003.12.02)by Mike Hillyer
Mike Hillyer explains how to work with BLOB columns using the ADO 2.5 stream object.
Articles on MySQL.com
- MySQL 5.0's Pluggable Storage Engine Architecture Part 1: An Overview
- MySQL 5.0's Pluggable Storage Engine Architecture Part 2: A Quick Test Drive
- Getting Started with MySQL
- Building a Database-Driven Web Site Using PHP and MySQL
- MySQL Wizardry - Cross Tabulations
- Exploring MySQL in the Microsoft .NET Environment
- Event scheduling with Lasso Professional 5
- Using AUTO_INCREMENT keys with Connector/J 3.0
- Connection pooling with MySQL Connector/J
- MySQL Administrator Best Practices
- Subqueries in MySQL, Part 1
MySQL articles elsewhere
- Tuning MySQL for eZ publish by Bård Farsted, August 2006.
- Connecting the MySQL GUI Tools to a Remote Server through a Firewall by Mike Hillyer, December 2004.
- HP ProLiant server configurations for MySQL in a scale-out architecture, Hewlett-Packard Development Company, September 2004.
- Database Templates with MySQL by Russell Dyer for O'Reilly ONLamp.com, March 2004.
- Using MySQL from PHP, Part 1 (and Part 2) by John Coggeshall for O'Reilly ONLamp.com, February and March 2004.
- Implementing High Availability in MySQL, KarKomaOnline, January 2004.
- Open Database Connectivity in Jaguar by Andrew Anderson for O'Reilly MacDevCenter.com, June 2003.
- OpenOffice.org 1.0, ODBC, and MySQL 'How-to' by John McCreesh, April 2003
- Secure MySQL Database Design by Kristy Westphal for Security Focus, February 2003
- HOWTO - Migrating from Microsoft Access to MySQL by Paul DuBois, January 2003
- How to use Access 2000 as a database front end by Sanders Kaufman, Jr. for Builder.com, October 2002
- Six Reusable PHP/MySQL functions by Sanders Kaufman, Jr. for Builder.com, July 2002
- MySQL Performance Tuning: Making sure your MySQL server flies by Jeremy Zawodny for Linux Magazine, December 2001
- MySQL Performance Tuning: How to Write Efficient MySQL Applications by Jeremy Zawodny for Linux Magazine, June 2001
- MySQL on Mac OS X by Jay Greenspan for Apple Internet Developer, November 2002
Slides from conference presentations
- Scaling MySQL and PHP by Jeremy Zawodny, presented at the 2002 PHP Conference
- Managing MySQL Replication by Jeremy Zawodny, presented at the 2002 O'Reilly Open Source Conference
- MySQL Backup and Recovery by Jeremy Zawodny, presented at the 2002 O'Reilly Open Source Conference
- MySQL Optimization by Jeremy Zawodny, presented at the 2002 O'Reilly Open Source Conference
Sites offering MySQL related articles (new items appear regularly on these sites!)
- MySQL articles on ONLamp.com
- devArticles.com: Articles for MySQL
- SitePoint.com: Tutorials and Articles for MySQL
- WebMonkey
- DevShed: MySQL Help, MySQL Tutorials, MySQL Programming, MySQL Tricks
- MySQL Tutorials from the Database Journal
© 1995-2008 MySQL AB, 2008-2009 Sun Microsystems, Inc.


