2009-09-20 3 views
0

Я собираюсь преобразовать строку в целое число для оптимизации группы по производительности.Групповая оптимизация строк

Что вы, ребята, думаете об этой идее?

Если применимо, то есть ли встроенная функция для преобразования строки в уникальное целое число в PHP?

+1

вы можете использовать crc32() для создания уникального целого числа строки. или используйте md5, затем конвертируйте из шестнадцатеричного назад в base-10. – mauris

+0

Если данные представляют собой только целые числа, то почему вы храните их в столбцах строк в первую очередь? Вы оценили эффективность или выгоду? –

+0

@Mauris: CRC-32 дает вам разумную вероятность генерации уникального целого для каждой строки - он ни в коем случае не является детерминированным на 100%. Довольно маленькие образцы могут столкнуться с конфликтами - разные хеширования строк до одного и того же значения CRC-32. Использование большего хеша - MD5 (128 бит вместо 32 бит) или SHA-1 (160 бит) или SHA-256 (err, вы считаете 256 бит) - более вероятно, будет уникальным, но стоимость преобразования значительно выше. –

ответ

4

Если все данные в этом столбце INT, то это должно быть ква ...

Основное преимущества вы получаете, что сравнение между 2 Интсом только сравнить 4 байта. Строка, выражающая одно и то же число, будет (обычно) длиннее. Таким образом, вы должны иметь возможность получить некоторую производительность. Но главная причина должна заключаться в том, что столбец, который stoes int должен быть int.

группы по оптимизации будет попадать в категорию «преждевременная оптимизация» ... И главное, что позволит ускорить группу по статье не тип данных, но индекс на поле