可锐资源网

技术资源分享平台,提供编程学习、网站建设、脚本开发教程

MySQL IP地址和大字符串存储方式

使用 ip2long() 和 long2ip() 函数将 IP 地址由字符串转换为整数存储到数据库。

这样可以减少约四分之一(15字节的字符对比4字节的整数)的存储空间, 更易于计算该 IP 地址的有效范围, 而且还加速了搜索和排序的效率。

使用bigint(20)字段类型存储数据

ip2long ( string $ip_address ) : int

long2ip ( int $proper_address ) : string


存储一个大字符串到数据库之前, 使用 gzcompress() 或 gzuncompress() 进行压缩/解压。

此内建函数使用 gzip 算法, 其明文压缩率可以达到 90%。几乎每次我用 PHP 读写一个 BLOB 字段的时候都会用到它们(除需要全文索引时)。

/**
* 判断字符串是否base64编码
*/
function func_is_base64($str)
{
    return $str == base64_encode(base64_decode($str)) ? true : false;
}
/**
* 压缩内容
*/
function func_gzcompress($str, $level = 9)
{
    if (!func_is_base64($str)) {
        return base64_encode(gzcompress($str, $level));
    }
    return $str;
}
/**
* 解压内容
*/
function func_gzuncompress($str)
{
    if (func_is_base64($str)) {
        return gzuncompress(base64_decode($str));
    }
    return $str;
}
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言