Лучшие практики для того, чтобы эффективно сохранить хеши md5 в mysql

Я написал неправильный ответ здесь, извините. Исправлено.

Это старый вопрос, но мне нравится этот трюк:

~~"2.123"; //2
~~"5"; //5

Двойной побитовый отрицательный результат отбрасывает что-либо после десятичной точки И преобразует его в числовой формат. Мне сказали, что это немного быстрее, чем вызов функций и еще много чего, но я не совсем уверен.

EDIT: Еще один метод, который я видел здесь здесь (вопрос о javascript >>>, который является правым сдвигом нулевой заливки), который показывает, что смещение числа на 0 с помощью этого оператора преобразует число в uint32, что приятно, если вы также хотите, чтобы он был беззнаковым. Опять же, это преобразуется в целое число без знака, что может привести к странному поведению, если вы используете подписанный номер.

"-2.123" >>> 0; // 4294967294
"2.123" >>> 0; // 2
"-5" >>> 0; // 4294967291
"5" >>> 0; // 5

28
задан Eugene Yarmash 24 February 2010 в 04:16
поделиться

1 ответ

Если столбец проиндексирован и вы знаете, что делаете, BINARY(16) по соображениям производительности.

В противном случае, CHAR(32) в порядке. Убедитесь, что в столбце используется ascii charset. (ascii_bin например)

43
ответ дан Eugene Yarmash 20 November 2019 в 03:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: