Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.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
Php 按字符串分组优化_Php_Database_Optimization_Group By - Fatal编程技术网

Php 按字符串分组优化

Php 按字符串分组优化,php,database,optimization,group-by,Php,Database,Optimization,Group By,我要将字符串转换为整数,以按性能优化组 你们觉得这个主意怎么样 如果适用,那么在PHP中是否有内置函数将字符串转换为唯一的整数?如果该列中的所有数据都是int,那么它应该是int 您获得的主要优势是,2个整数之间的比较只需要比较4个字节。表示相同数字的字符串(通常)会更长。所以你应该能够从中获得一些性能。但主要原因应该是stoes int的列应该是int 优化组将属于“过早优化”类别。。。加快GROUPBY子句速度的主要因素不是数据类型,而是字段上的索引如果该列中的所有数据都是int,那么它应该

我要将字符串转换为整数,以按性能优化组

你们觉得这个主意怎么样


如果适用,那么在PHP中是否有内置函数将字符串转换为唯一的整数?

如果该列中的所有数据都是int,那么它应该是int

您获得的主要优势是,2个整数之间的比较只需要比较4个字节。表示相同数字的字符串(通常)会更长。所以你应该能够从中获得一些性能。但主要原因应该是stoes int的列应该是int


优化组将属于“过早优化”类别。。。加快GROUPBY子句速度的主要因素不是数据类型,而是字段上的索引如果该列中的所有数据都是int,那么它应该是int

您获得的主要优势是,2个整数之间的比较只需要比较4个字节。表示相同数字的字符串(通常)会更长。所以你应该能够从中获得一些性能。但主要原因应该是stoes int的列应该是int


优化组将属于“过早优化”类别。。。加快GROUPBY子句速度的主要因素不是数据类型,而是字段上的索引

您可以使用crc32()函数创建字符串的唯一整数。或者使用md5,然后从十六进制转换回base-10。如果数据仅为整数,为什么首先要将其存储在字符串列中?您衡量过性能成本或效益吗?@Mauris:CRC-32只为您提供了为每个字符串生成唯一整数的合理概率-它决不是100%确定的。非常小的样本可能会发生冲突——不同的字符串散列到相同的CRC-32值。使用更大的散列-MD5(128位而不是32位)或SHA-1(160位)或SHA-256(呃,你相信256位吗)-更可能是唯一的,但转换成本要高得多。@Mauris:我对Olson数据库中的时区名称使用了CRC算法,并在该集中发生了冲突。回想起来,我现在不确定我是在尝试16位还是32位CRC,但在几百个名称的示例中,我遇到了冲突。您可以使用crc32()函数创建字符串的唯一整数。或者使用md5,然后从十六进制转换回base-10。如果数据仅为整数,为什么首先要将其存储在字符串列中?您衡量过性能成本或效益吗?@Mauris:CRC-32只为您提供了为每个字符串生成唯一整数的合理概率-它决不是100%确定的。非常小的样本可能会发生冲突——不同的字符串散列到相同的CRC-32值。使用更大的散列-MD5(128位而不是32位)或SHA-1(160位)或SHA-256(呃,你相信256位吗)-更可能是唯一的,但转换成本要高得多。@Mauris:我对Olson数据库中的时区名称使用了CRC算法,并在该集中发生了冲突。回想起来,我现在不确定我是在尝试16位还是32位CRC,但在几百个名字的样本中,我遇到了冲突。