Use Char instead of Varchar to Store UUID's
I know a lot of developers like using UUID's for primary keys instead of integers. But one thing I see alot is the use of the varchar datatype to store these strings.
If your using ColdFusion's CreateUUID() function to generate a unique identifier, you will notice that it always returns a 35 character string. So why store it in a variable length column in the database? Instead of using varchar (35) you can simply use char (35).
As a rule, if you are storing a fixed length string in a database use char rather than varchar. A varchar will have an extra byte of overhead on most databases (usually an integer stating the actual length of the string).
Some other common places where you should use char over a varchar include:
- Two Character US State Codes
- Two Character Country Codes
- One Character Status Flags
add to del.icio.us
| Tags: varchar, char, sql, databases, createuuid, uuid
Related Entries
- Use varchar(max) instead of text in SQL Server - December 9, 2009
- Cheat Sheet for SQL Server - April 20, 2009
- Sphinx - Open Source SQL Full Text Search Engine - November 1, 2006
- Updated SQL Reserved Words Checker - March 28, 2006
- MySQL FULLTEXT Indexing and Searching - September 29, 2005
Trackbacks
Trackback Address: 626/AC7AB70DC80071CFC039692BD3380691
Comments
On 01/18/2008 at 1:22:09 PM EST Daniel wrote:
1
UUIDs are always 36 characters long, and not 35. Look up the standard.
On 08/27/2009 at 7:33:52 PM EDT Kevin Parker wrote:
2
I know I'm way late on this conversation, but I've been researching this whole UUID thing today, and Pete is 100% correct on the CF's CreateUUID() creating a 35 character string. This is due to the fact that CF generates 4 segments instead of five, and therefore has one less hyphen. The actual UUID standard is 32 characters, but most have 36 when including the 4 dashes between their 5 segments. And these aren't the only options. The following shed light on Daniel's error: http://en.wikipedia.org/wiki/UUID http://livedocs.adobe.com/coldfusion/8/htmldocs/help.html?content=functions_c-d_24.html
That said, thanks Pete for sharing this. I first ran across using UUID looking at Ray C.'s apps recently.
Post a Comment
Recent Entries
- Cache Template in Request Setting Explained
- What Version of Java is ColdFusion Using?
- ColdFusion 9 Performance Brief from Adobe
- Request Filtering in IIS 7 Howto
- J2EE Session Cookies on ColdFusion / JRun
- Hands on ColdFusion Security Training
- ColdFusion 9 Solr Vulnerability - Are you at Risk?
- FCKEditor Year 2010 Bug for Firefox 3.6 with ColdFusion
That said, thanks Pete for sharing this. I first ran across using UUID looking at Ray C.'s apps recently.







