I know that a database management system like MySQL can make use of multiple storage engines - i.e. InnoDB, MyISAM, etc.
And reading into how SQL Server stores data (Understanding Pages and Extents), I can summarize (hopefully correctly):
- SQL Server data storage consists of 'pages' (the smallest unit of data that SQL Server handles),
- 8 contiguous pages makes a structure called an 'Extent' (SQL Server accesses an Extent per read according to this article)
- Extents can either be dedicated to a single object or shared by as many as 8 objects (a page can only belong to a single object). Uniform extents are preferred and mixed extents are refactored to be uniform when an object becomes large enough.
- Objects include pretty much every everything in SQL Server (table, types, functions, indexes, etc. etc.)
- An extent == 8 pages = 64KB == 64 000 bytes == 512 000 bits = 2 extents per MB
- Log files do not use pages / extents
- Does SQL Server write to disk an extent at a time? (since an extent is the smallest 'read' unit)?
- Are SQL Server metaphors such as 'pages', 'objects' and 'extents' applicable to other DB engines.
- Alternatively, are pages and extents at a different abstraction level to talking about 'engines' such as InnoDB and MyISAM? If so, would these engines use something other than blocks of 8 * 8KB storage units (what I surmise pages and extents to be)?
Also, why is Google's conversion of KB to bytes different to MS? i.e. Google converts 8KB to 8000 bytes, MS converts 8KB to 8192 bytes.