2009-09-20 90 views
0

我要將字符串轉換爲整數以按性能優化分組。按字符串優化分組

你們認爲這個想法是什麼?

如果適用,那麼是否有內置函數將字符串轉換爲PHP中的唯一整數?

+1

可以使用CRC32 ()函數來創建一個字符串的唯一整數。或使用md5,然後從十六進制轉換回基數爲10。 – mauris

+0

如果數據只是整數,你爲什麼首先將它存儲在字符串列中?您是否衡量了性能成本或收益? –

+0

@Mauris:CRC-32只給你一個合理的概率爲每個字符串生成一個唯一的整數 - 它決不是100%確定性的。相當小的樣本可能碰撞 - 不同的字符串散列到相同的CRC-32值。使用更大的散列 - MD5(128位而不是32位)或SHA-1(160位)或SHA-256(ERR,你會相信256個比特) - 是更可能是唯一的,但是轉化成本是相當高的。 –

回答

4

如果該列中的所有數據類型爲int,那麼它應該是int ...

你得到的主要好處是,2個整數之間的比較只需要比較4字節。表示相同數字的字符串(通常)會更長。所以你應該能夠從中獲得一些性能。但主要原因應該是一個列int int應該是int。

通過優化該小組將落入類別「過早優化」 ......而最主要的,將由第加快組不是數據類型,但在該領域的指數