A perfect machine is a machine that performs its job but doesn’t really exist. There is no overhead cost to using it. Developers choose to use Valentina DB as a solution because of its unique advantages. Let’s take a look at one of those unique advantages.
The RecID field plays the role of a unique identifier of a record in the scope of its table. Let’s take a closer look at what makes this so special in removing overhead in working with large quantities of data.
Anatomy of RecID
Let’s dig into specifics of what the RecID field is.
RecID – Logical Level
- Each Valentina DB Table have one RecID field
- RecID plays role of a UNIQUE identifier of a table record
- Corresponds to 4 bytes ULONG type field, which is read-only
- We can jump to record with RecID = N directly
- RecID of a record is never changed during its lifetime (except refactoring commands)
- RecID value of deleted records can be reused
RecID – Physical Level
- RecID value is the physical number of a record
- The first physical record has RecID = 1
- A deleted record is marked as such in the Bitmap associated with Table? Records are not moved physically
Two Key Advantages of RecID
The overhead savings you get with using Valentina DB’s RecID are profound, especially with the growing overhead cost of using primary keys.
No Storage Allocated for RecID
The RecID field uses zero space and yet still does the same job that relational databases do. Lets compare with a database table with one million records.
- RecID field uses ZERO bytes on disk and in RAM
- RecID field do not need index, so ZERO bytes
- You use a ULONG field (4 bytes) as Primary Key
- PK must have index
And the cost of using the relational way…
- Column data size: 4 bytes * 1million = 4 Mb
- Index size: (4 bytes of KEY + 4 bytes internal ref) * 1.5 = 12Mb
Not Cost to Create RecID
Each Valentina Table always gets this field automatically. No effort is required. The best code is no code at all.
- CREATE TABLE tblPerson( Name VarChar )
- CREATE TABLE tblPerson(
ID ULONG PRIMAY KEY, Name VarChar )