我尝试进行一种基准测试,以显示在MySQL数据库中对UUID列使用BINARY(16)over VARCHAR(36)可以提高速度。然而,根据我的测试代码,我得到了令人困惑的结果。对于大量和少量的行来说,它实际上只会让事情变得更糟!
我的代码有点乱,但是它创建了一个包含两个表的数据库,这些表只在BINARY / VARCHAR列中有所不同,用一定数量的行填充它们,然后比较查询它们所需的时间。一些随机顺序(两者的顺序相同)。
https://gist.github.com/MarkLalor/c2f7a0861eb29d87a56715aa33c9a3e8
在本地主机上使用MySQL服务器的结果(注意它的百分比减少,所以正数是#34;好的")
X轴是用于该测试的行数。每个行号是10个测试的平均值(一个测试是 - >创建db / tables / fill with numbers / shuffle / query / delete db)
我认为在小数字和大数字上,差异会很小,但我认为它不会带来恒定的速度减少!起初我认为这只是因为查询数据库所需的时间,但我添加了平均10个功能来消除这一点。