Показать сообщение отдельно

  #135  
Старый 18.12.2007, 23:22
-=lebed=-
Флудер
Регистрация: 21.06.2006
Сообщений: 3,193
С нами: 10467746

Репутация: 4738


По умолчанию

То hilkfild:
Есть предложение хранить в базе хэши не в виде строки типа char(32) а в виде char(16) используя функции кодирования хэша (перед занесением в базу) и декодирования (после извлечения из базы)

Выгоды: уменьшение базы, быстрее поиск по базе.
Вот сами функции кодирования и декодирования:
PHP код:
function code_hash($hash)
{
$n=0;  
$hash_code="";
$l=strlen($hash)-1;
do  
 {  
  
$code='0x'.$hash[$n].$hash[$n+1];  
  
$hash_code.=chr(hexdec($code));  
  
$n++;  
 }  
while (
$n++<$l);
return 
$hash_code;

PHP код:
function decode_hash($string

$n=0;   
$decode_hash=""
$l=strlen($string)-1;
do   
 {   
  
$code=ord($string[$n]);   
  
$decode_hash.=dechex($code);   
 }   
while (
$n++<$l); 
return 
$decode_hash

ЗЫ Открываются перспективы на экономичное хранение других популярных хэшей (MySQL - char(8) против char(16), MySQL5 - char(20) против char(40), и SHA-1 - char(20) против (40). у всех чарсет 0-9a-f
Кроме того на поле pass я так понял целесообразно использовать тип VARCHAR?

Последний раз редактировалось -=lebed=-; 18.12.2007 в 23:41..
 
Ответить с цитированием