fbpx
Wikipedia

Database engine

A database engine (or storage engine) is the underlying software component that a database management system (DBMS) uses to create, read, update and delete (CRUD) data from a database. Most database management systems include their own application programming interface (API) that allows the user to interact with their underlying engine without going through the user interface of the DBMS.

The term "database engine" is frequently used interchangeably with "database server" or "database management system". A "database instance" refers to the processes and memory structures of the running database engine.

Storage engines edit

Many of the modern DBMS support multiple storage engines within the same database. For example, MySQL supports InnoDB as well as MyISAM.

Some storage engines are transactional.

Name License Transactional Compatibility Notes
Aria GPL No MariaDB and MySQL
Falcon GPL Yes MySQL Discontinued
InnoDB GPL Yes MySQL and MariaDB The default for MySQL and MariaDB
Memory GPL No MySQL and MariaDB
MyISAM GPL No MySQL Was the default for MySQL
InfiniDB GPL No
TokuDB GPL Yes MySQL and MariaDB Uses fractal tree index
WiredTiger GPL Yes MongoDB | Default for MongoDB
XtraDB GPL Yes MariaDB and Percona Server for MySQL
RocksDB / MyRocks GPL v2 or Apache 2.0 Yes ArangoDB, Cassandra, MariaDB, MongoDB, MySQL, SurrealDB

Additional engine types include:

Design considerations edit

Information in a database is stored as bits laid out as data structures in storage that can be efficiently read from and written to given the properties of hardware. Typically the storage itself is designed to meet requirements of various areas that extensively utilize storage, including databases. A DBMS in operation always simultaneously utilizes several storage types (e.g., memory, and external storage), with respective layout methods.

In principle the database storage can be viewed as a linear address space, where every bit of data has its unique address in this address space. In practice, only a very small percentage of addresses are kept as initial reference points (which also requires storage); most data is accessed by indirection using displacement calculations (distance in bits from the reference points) and data structures which define access paths (using pointers) to all needed data in an effective manner, optimized for the needed data access operations.

Database storage hierarchy edit

A database, while in operation, resides simultaneously in several types of storage, forming a storage hierarchy. By the nature of contemporary computers most of the database part inside a computer that hosts the DBMS resides (partially replicated) in volatile storage. Data (pieces of the database) that are being processed/manipulated reside inside a processor, possibly in processor's caches. These data are being read from/written to memory, typically through a computer bus (so far typically volatile storage components). Computer memory is communicating data (transferred to/from) external storage, typically through standard storage interfaces or networks (e.g., fibre channel, iSCSI). A storage array, a common external storage unit, typically has storage hierarchy of its own, from a fast cache, typically consisting of (volatile and fast) DRAM, which is connected (again via standard interfaces) to drives, possibly with different speeds, like flash drives and magnetic disk drives (non-volatile). The drives may be connected to magnetic tapes, on which typically the least active parts of a large database may reside, or database backup generations.

Typically a correlation exists currently between storage speed and price, while the faster storage is typically volatile.

Data structures edit

A data structure is an abstract construct that embeds data in a well defined manner. An efficient data structure allows manipulation of the data in efficient ways. The data manipulation may include data insertion, deletion, updating and retrieval in various modes. A certain data structure type may be very effective in certain operations, and very ineffective in others. A data structure type is selected upon DBMS development to best meet the operations needed for the types of data it contains. Type of data structure selected for a certain task typically also takes into consideration the type of storage it resides in (e.g., speed of access, minimal size of storage chunk accessed, etc.). In some DBMSs database administrators have the flexibility to select among options of data structures to contain user data for performance reasons. Sometimes the data structures have selectable parameters to tune the database performance.

Databases may store data in many data structure types.[1] Common examples are the following:

Data orientation and clustering edit

In contrast to conventional row-orientation, relational databases can also be column-oriented or correlational in the way they store data in any particular structure.

In general, substantial performance improvement is gained if different types of database objects that are usually utilized together are laid in storage in proximity, being "clustered". This usually allows to retrieve needed related objects from storage in minimum number of input operations (each sometimes substantially time-consuming). Even for in-memory databases clustering provides performance advantage due to common utilization of large caches for input-output operations in memory, with similar resulting behavior.

For example, it may be beneficial to cluster a record of an "item" in stock with all its respective "order" records. The decision of whether to cluster certain objects or not depends on the objects' utilization statistics, object sizes, caches sizes, storage types, etc.

Database indexing edit

Indexing is a technique some storage engines use for improving database performance. The many types of indexes share the common property that they reduce the need to examine every entry when running a query. In large databases, this can reduce query time/cost by orders of magnitude. The simplest form of index is a sorted list of values that can be searched using a binary search with an adjacent reference to the location of the entry, analogous to the index in the back of a book. The same data can have multiple indexes (an employee database could be indexed by last name and hire date).

Indexes affect performance, but not results. Database designers can add or remove indexes without changing application logic, reducing maintenance costs as the database grows and database usage evolves. Indexes can speed up data access, but they consume space in the database, and must be updated each time the data is altered. Indexes therefore can speed data access but slow data maintenance. These two properties determine whether a given index is worth the cost.

References edit

  1. ^ Lightstone, S.; Teorey, T.; Nadeau, T. (2007). Physical Database Design: the database professional's guide to exploiting indexes, views, storage, and more. Morgan Kaufmann Press. ISBN 978-0-12-369389-1.

External links edit

  • MySQL Administrator's Bible Chapter 11 "Storage Engines"

database, engine, database, engine, storage, engine, underlying, software, component, that, database, management, system, dbms, uses, create, read, update, delete, crud, data, from, database, most, database, management, systems, include, their, application, pr. A database engine or storage engine is the underlying software component that a database management system DBMS uses to create read update and delete CRUD data from a database Most database management systems include their own application programming interface API that allows the user to interact with their underlying engine without going through the user interface of the DBMS The term database engine is frequently used interchangeably with database server or database management system A database instance refers to the processes and memory structures of the running database engine Contents 1 Storage engines 2 Design considerations 2 1 Database storage hierarchy 2 2 Data structures 2 3 Data orientation and clustering 2 4 Database indexing 3 References 4 External linksStorage engines editSee also Comparison of MySQL database engines Many of the modern DBMS support multiple storage engines within the same database For example MySQL supports InnoDB as well as MyISAM Some storage engines are transactional Name License Transactional Compatibility NotesAria GPL No MariaDB and MySQLFalcon GPL Yes MySQL DiscontinuedInnoDB GPL Yes MySQL and MariaDB The default for MySQL and MariaDBMemory GPL No MySQL and MariaDBMyISAM GPL No MySQL Was the default for MySQLInfiniDB GPL NoTokuDB GPL Yes MySQL and MariaDB Uses fractal tree indexWiredTiger GPL Yes MongoDB Default for MongoDBXtraDB GPL Yes MariaDB and Percona Server for MySQLRocksDB MyRocks GPL v2 or Apache 2 0 Yes ArangoDB Cassandra MariaDB MongoDB MySQL SurrealDBAdditional engine types include Embedded database engines In memory database enginesDesign considerations editInformation in a database is stored as bits laid out as data structures in storage that can be efficiently read from and written to given the properties of hardware Typically the storage itself is designed to meet requirements of various areas that extensively utilize storage including databases A DBMS in operation always simultaneously utilizes several storage types e g memory and external storage with respective layout methods In principle the database storage can be viewed as a linear address space where every bit of data has its unique address in this address space In practice only a very small percentage of addresses are kept as initial reference points which also requires storage most data is accessed by indirection using displacement calculations distance in bits from the reference points and data structures which define access paths using pointers to all needed data in an effective manner optimized for the needed data access operations Database storage hierarchy edit A database while in operation resides simultaneously in several types of storage forming a storage hierarchy By the nature of contemporary computers most of the database part inside a computer that hosts the DBMS resides partially replicated in volatile storage Data pieces of the database that are being processed manipulated reside inside a processor possibly in processor s caches These data are being read from written to memory typically through a computer bus so far typically volatile storage components Computer memory is communicating data transferred to from external storage typically through standard storage interfaces or networks e g fibre channel iSCSI A storage array a common external storage unit typically has storage hierarchy of its own from a fast cache typically consisting of volatile and fast DRAM which is connected again via standard interfaces to drives possibly with different speeds like flash drives and magnetic disk drives non volatile The drives may be connected to magnetic tapes on which typically the least active parts of a large database may reside or database backup generations Typically a correlation exists currently between storage speed and price while the faster storage is typically volatile Data structures edit Main article Database storage structures A data structure is an abstract construct that embeds data in a well defined manner An efficient data structure allows manipulation of the data in efficient ways The data manipulation may include data insertion deletion updating and retrieval in various modes A certain data structure type may be very effective in certain operations and very ineffective in others A data structure type is selected upon DBMS development to best meet the operations needed for the types of data it contains Type of data structure selected for a certain task typically also takes into consideration the type of storage it resides in e g speed of access minimal size of storage chunk accessed etc In some DBMSs database administrators have the flexibility to select among options of data structures to contain user data for performance reasons Sometimes the data structures have selectable parameters to tune the database performance Databases may store data in many data structure types 1 Common examples are the following ordered unordered flat files hash tables B trees ISAM heapsData orientation and clustering edit In contrast to conventional row orientation relational databases can also be column oriented or correlational in the way they store data in any particular structure In general substantial performance improvement is gained if different types of database objects that are usually utilized together are laid in storage in proximity being clustered This usually allows to retrieve needed related objects from storage in minimum number of input operations each sometimes substantially time consuming Even for in memory databases clustering provides performance advantage due to common utilization of large caches for input output operations in memory with similar resulting behavior For example it may be beneficial to cluster a record of an item in stock with all its respective order records The decision of whether to cluster certain objects or not depends on the objects utilization statistics object sizes caches sizes storage types etc Database indexing edit Main article Database index Indexing is a technique some storage engines use for improving database performance The many types of indexes share the common property that they reduce the need to examine every entry when running a query In large databases this can reduce query time cost by orders of magnitude The simplest form of index is a sorted list of values that can be searched using a binary search with an adjacent reference to the location of the entry analogous to the index in the back of a book The same data can have multiple indexes an employee database could be indexed by last name and hire date Indexes affect performance but not results Database designers can add or remove indexes without changing application logic reducing maintenance costs as the database grows and database usage evolves Indexes can speed up data access but they consume space in the database and must be updated each time the data is altered Indexes therefore can speed data access but slow data maintenance These two properties determine whether a given index is worth the cost References edit Lightstone S Teorey T Nadeau T 2007 Physical Database Design the database professional s guide to exploiting indexes views storage and more Morgan Kaufmann Press ISBN 978 0 12 369389 1 External links edithttps web archive org web 20100330045149 http dev mysql com tech resources articles storage engine part 3 html MySQL Administrator s Bible Chapter 11 Storage Engines Retrieved from https en wikipedia org w index php title Database engine amp oldid 1186209778, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.