Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Tweaks to WITHOUT ROWID documentation. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
478a586d675dc5801b640e4e3847dfe0 |
User & Date: | drh 2013-11-09 17:27:36.655 |
Context
2013-11-11
| ||
23:27 | Documentation updates associated with WITHOUT ROWID and the extension of the sqlite3_index_info object. (check-in: 21034f356e user: drh tags: trunk) | |
2013-11-09
| ||
17:27 | Tweaks to WITHOUT ROWID documentation. (check-in: 478a586d67 user: drh tags: trunk) | |
17:17 | Fix a broken fragment specification in the fileformat page. (check-in: ea35f76f95 user: drh tags: trunk) | |
Changes
Changes to pages/fileformat2.in.
︙ | ︙ | |||
495 496 497 498 499 500 501 | or index. There is a one table b-trees in the database file for each rowid table in the database schema, including system tables such as sqlite_master. There is one index b-trees in the database file for each index in the schema, including implied indices created by uniqueness constraints. There are no b-trees associated with [virtual tables]. Specific virtual table implementations might make use of [shadow tables] for storage, but those shadow tables will have separate | | | | 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 | or index. There is a one table b-trees in the database file for each rowid table in the database schema, including system tables such as sqlite_master. There is one index b-trees in the database file for each index in the schema, including implied indices created by uniqueness constraints. There are no b-trees associated with [virtual tables]. Specific virtual table implementations might make use of [shadow tables] for storage, but those shadow tables will have separate entries in the database schema. [WITHOUT ROWID] tables use index b-trees rather than a table b-trees, so there is one index b-tree in the database file for each [WITHOUT ROWID] table. The b-tree corresponding to the sqlite_master table is always a table b-tree and always has a root page of 1. The sqlite_master table contains the root page number for every other table and index in the database file.</p> <p>Each entry in a table b-tree consists of a 64-bit signed integer key |
︙ | ︙ |
Changes to pages/withoutrowid.in.
︙ | ︙ | |||
214 215 216 217 218 219 220 221 222 223 224 225 226 227 | but traditional rowid tables tend to work faster for large row sizes. This is because rowid tables are implemented as [B*-Trees] where all content is stored in the leaves of the tree, whereas WITHOUT ROWID tables are implemented using ordinary B-Trees with content stored on both leaves and intermediate nodes. Storing content in intermediate nodes mean that each intermediate node entry takes up more space on the page and thus reduces the fan-out, increasing the search cost. <p>Note that except for a few corner-case differences detailed above, WITHOUT ROWID tables and rowid tables work the same. They both generate the same answers given the same SQL statements. So it is a simple matter to run experiments on an application, late in the development cycle, to test whether or not the use of WITHOUT ROWID tables will be helpful. A good strategy is to simply not worry about WITHOUT ROWID until near | > > > > > > | 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 | but traditional rowid tables tend to work faster for large row sizes. This is because rowid tables are implemented as [B*-Trees] where all content is stored in the leaves of the tree, whereas WITHOUT ROWID tables are implemented using ordinary B-Trees with content stored on both leaves and intermediate nodes. Storing content in intermediate nodes mean that each intermediate node entry takes up more space on the page and thus reduces the fan-out, increasing the search cost. <p>The "sqlite3_analyzer.exe" utility program, available as source code in the SQLite source tree or as a precompiled binary on the [http://www.sqlite.org/download.html | SQLite Download page], can be used to measure the average sizes of table rows in an existing SQLite database.</p> <p>Note that except for a few corner-case differences detailed above, WITHOUT ROWID tables and rowid tables work the same. They both generate the same answers given the same SQL statements. So it is a simple matter to run experiments on an application, late in the development cycle, to test whether or not the use of WITHOUT ROWID tables will be helpful. A good strategy is to simply not worry about WITHOUT ROWID until near |
︙ | ︙ |