Advertisment

Let''s partner and develop

author-image
CIOL Bureau
Updated On
New Update

Aparna Lal

Advertisment

Data is one of the most important pillar of any application, be it a financial module deployed in a bank or an e-commerce site or sales-order tracking system deployed in an enterprise. While application developers need not necessarily bother about the way data storage is handled by the database server an understanding of the same becomes vital when data access requirements are demanding or the size of the dataset is huge.

MySQL, most widely used open source database management system from Swedish company MySQL AB offers a variety of storage engine options for the developer to choose from depending upon his needs.

MySQL's storage engine was a deliberate design choice by Michael "Monty" Widenius, MySQL AB's CTO and adopts a two layered approach clearly separating the database management layer from the storage engine layer.

Advertisment

MySQL offers a set of native storage engine namely MyISAM, Cluster, Federated, Archive, Merge, Memory, CSV and Blackhole.

Owing to its Pluggable Storage Engine Architecture, purpose built storage engines that have been optimized for specific application domains - OLTP, Read-Intensive Web Scale-out, High-Availability Clustering, Data Archiving, Data Warehousing, etc.

The storage architecture provides provides a standard set of server, drivers, tools, management, and support services that are leveraged across all the underlying storage engines.

Advertisment

MySQL's Storage Engine Partner Program

To involve ISVs and open source developers in the development of storage engines to fulfill different requirements, MySQL runs a Storage Engine Partner Program under which database engine developers can get their software certified for compatiblity with the MySQL Server. The Partner Program is designed to ensure that these engines have the highest levels of integration, usability, and performance.

MyISAM is a disk based storage engine. Aiming for very low overhead, it does not support transactions.
InnoDB is also disk based, but offers versioned, fully ACID transactional capabilities. InnoDB requires more disk space than MyISAM to store its data, and this increased overhead is compensated by more aggressive use of memory caching, in order to attain high speeds.
Memory (formerly called "HEAP") is a storage engine that utilizes only RAM. Special algorithms are used that make optimal use of this environment. It is very fast.
NDB, the MySQL Cluster Storage engine, connects to a cluster of nodes, offering high availability through redundancy, high performance through fragmentation (partitioning) of data across multiple node groups, and excellent scalability through the combination of these two. NDB uses main-memory only, with logging to disk.
Advertisment

InnoDB from InnoBase, now a subsidiary of Oracle and solidDB are some popular storage engines that have been developed by MySQL partners for specific application domains. While InnoDB is a transactional storage engine for MySQL, offering support for transactions, row level locking, and referential integrity for MySQL applications, solidDB is designed for mission-critical implementations that require a robust, transactional database.

Popular examples of community developed storage engines include PrimeBase XT a MySQl storage engine for web-based, high concurrency environments and OpenOLAP (On-Line Analytical Processing) an open source tool for MySQL.

Several MySQL's Customers are also developing customized in-house Storage Engines to address their specific needs.

Check out this link for a complete listing of various MYSQL storage engine projects that are underway.

CIOL Bureau

tech-news