Generate non-standard InnoDB-optimized UUIDs in JavaScript
If you are using MySQL, uuids can add overhead. We can create more performant, but non-standard UUIDs that help speed up insets and is sized to fit inside a binary(16) column.
Here are the steps involved in this process:
- 13341cb5-c1f8-11e4-91e7-080027880ca6 (Standard UUID v1)
- 11e4-c1f8-13341cb5-91e7-080027880ca6 (Transposed, non-standard UUID)
- 11E4C1F813341CB591E7080027880CA6 (Resized, transposed, non-standard UUID)
npm install innodb-optimized-uuid --save-exact
If using Node or Webpack w/CommonJS, import using:
var iouuid = require('innodb-optimized-uuid');
Or if using Webpack w/ES6 or SystemJS module syntax, import using:
import {iouuid} from 'innodb-optimized-uuid';
For more information on how to use this package in Webpack, see the full example showing both CommonJS and ES6 usage.
bower install innodb-optimized-uuid
<script src="bower_components/innodb-optimized-uuid/dist/innodb-optimized-uuid.js"></script>
var iouuid = window.innodbOptimizedUuid;
var uuid = iouuid.generate();
// uuid's value is now a non-standard innodb-optimized uuid in the format:
// 11E4C1F813341CB591E7080027880CA6
A common mistake: When generating multiple UUIDs in this format, uuids may incorrectly appear equal to the human eye. This because the start and end characters are often the same. In this format the values in the middle of the uuid changes most often when called repeatedly.
Clone this repo.
Run npm install && npm test
- Clone the repo
npm install -g liveserver
- run
live-server
in the project root
To build, simply execute:
gulp build
Commit all of your changes locally.
- For a patch version bump:
gulp patch
- For a minor version bump:
gulp feature
- For a major version bump:
gulp release
Then, finally publish to github/bower and npm using: gulp publish