Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我应该在MySQL中对id/uuid(主键)使用int还是char?_Mysql - Fatal编程技术网

我应该在MySQL中对id/uuid(主键)使用int还是char?

我应该在MySQL中对id/uuid(主键)使用int还是char?,mysql,Mysql,我几乎所有的桌子都用id,你永远不知道它们什么时候能派上用场。但是今天我读到这个 要格外小心,确保根据惯例,您的“id”列或主键是: char36,永远不要varchar36 CakePHP将使用这两种定义,但是您将牺牲数据库MySQL大约50%的性能。这在更复杂的SELECT中最为明显,这可能需要一些连接或计算 我想知道。。。当你只需要保存整数时,为什么还要使用基于文本的东西呢?我非常关心为正确的内容使用正确的格式,所以我想知道char是否比integer有任何性能改进?我强烈建议使用int。

我几乎所有的桌子都用id,你永远不知道它们什么时候能派上用场。但是今天我读到这个

要格外小心,确保根据惯例,您的“id”列或主键是:

char36,永远不要varchar36

CakePHP将使用这两种定义,但是您将牺牲数据库MySQL大约50%的性能。这在更复杂的SELECT中最为明显,这可能需要一些连接或计算


我想知道。。。当你只需要保存整数时,为什么还要使用基于文本的东西呢?我非常关心为正确的内容使用正确的格式,所以我想知道char是否比integer有任何性能改进?

我强烈建议使用int。我正在为我的论文做一些建模工作,我在大数据集上工作。我必须创建一个大约有70.000.000行的表。我的主键是varchar+int。开始时,创建5位数行的一个周期花了5分钟,很快就变成了40。删除主键修复了我的性能问题。我想这是因为确保独特性和它变得越来越耗时。当我的主键是int时,我没有类似的问题。
不过这是个人的经验,所以也许有人可以给出更为理论和可靠的答案。

char与integer相比没有任何改进。但是,当您需要防止用户知道或篡改您不希望他们知道的其他行时,它非常有用

假设每个用户都有一个名为/img/$id.jpg的配置文件图片,这是最简单的情况,因为您不必在DB中存储任何数据来获取此信息。当然,如果你使用integer还有其他方法,有人可以循环浏览你所有的个人资料图片。有了UUID,他们就不能


当您有很多记录时,自动递增int对于性能来说更好。例如,您可以将uuid放在另一个字段secret\u key中。

No,它不会提高性能。在他们的背景下大概有七千万?70万亿?哇!