Having done some work with MySQL (specifically around similar data sets) and discussing the changes with some former coworkers (MySQL experts) I am inclined to believe the move from varchar  to binary absolutely would increase performance like this.<div>
<br></div><div>However, I would like to get some real benchmarks around it and if it really makes a difference we should get a smart "UUID" type into the common SQLlibs (can pgsql see a similar benefit? Db2?) I think this conversation. Should be split off from the keystone one at hand - I don't want valuable information / discussions to get lost.</div>
<div><br></div>Cheers,<div>Morgan. </div><div><br></div><div>Sent via mobile<span></span><br><div><div><br><br>On Sunday, March 2, 2014, Sean Dague <<a href="mailto:sean@dague.net">sean@dague.net</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
On 03/01/2014 08:00 PM, Clint Byrum wrote:<br>
> Excerpts from Robert Collins's message of 2014-03-01 14:26:57 -0800:<br>
>> On 1 March 2014 13:28, Clint Byrum <<a href="javascript:;" onclick="_e(event, 'cvml', 'clint@fewbar.com')">clint@fewbar.com</a>> wrote:<br>
>><br>
>>> +1. A Keystone record belongs to Keystone, and it should have a Keystone<br>
>>> ID. External records that are linked should be linked separately.<br>
>>><br>
>>> It may not be obvious to everyone, but MySQL uses B-trees for indexes.<br>
>>> B-trees cannot have variable-length keys.<br>
>><br>
>> Hmm, B-Trees and B+-Trees both can have variable length keys. I'll<br>
>> accept an assertion that MySQL index B-trees cannot - but we should be<br>
>> precise here, because its not a global limitation.<br>
>><br>
><br>
> Sorry, I misspoke, _InnoDB's_ b-tree's cannot have variable length keys.<br>
> :-P<br>
<br>
On a previous project we did a transition from varchar based UUID to<br>
binary based UUID in MySQL. The micro benchmarks on joins got faster by<br>
a factor of 10,000 (yes 10k). Granted, MySQL has evolved since then, and<br>
this was a micro benchmark, however this is definitely work considering.<br>
<br>
        -Sean<br>
<br>
--<br>
Sean Dague<br>
Samsung Research America<br>
<a href="javascript:;" onclick="_e(event, 'cvml', 'sean@dague.net')">sean@dague.net</a> / <a href="javascript:;" onclick="_e(event, 'cvml', 'sean.dague@samsung.com')">sean.dague@samsung.com</a><br>

<a href="http://dague.net" target="_blank">http://dague.net</a><br>
<br>
</blockquote></div></div></div>