当前位置: 首页 > wzjs >正文

被禁止访问网站怎么办建材网站开发

被禁止访问网站怎么办,建材网站开发,网站制作零基础学习,菊子曰 wordpressPostgreSQL的扩展lo 一、lo 扩展概述 lo (Large Object) 是 PostgreSQL 用于存储大对象(通常超过 1GB)的扩展模块,提供对二进制大对象(BLOB)的高效存储和管理功能。 二、核心特性 特性说明存储大小理论最大 4TB (实际受文件系统限制)存储方式独立于表数据存储&a…

PostgreSQL的扩展lo

一、lo 扩展概述

lo (Large Object) 是 PostgreSQL 用于存储大对象(通常超过 1GB)的扩展模块,提供对二进制大对象(BLOB)的高效存储和管理功能。

二、核心特性

特性说明
存储大小理论最大 4TB (实际受文件系统限制)
存储方式独立于表数据存储,通过 OID 引用
事务支持完全 ACID 兼容
访问控制独立的权限系统

三、启用方法

-- 创建扩展
CREATE EXTENSION lo;-- 验证安装
SELECT * FROM pg_available_extensions WHERE name = 'lo';

四、主要函数

1. 基础操作函数

-- 创建空大对象
SELECT lo_create(0);-- 导入文件
SELECT lo_import('/path/to/file');-- 导出到文件
SELECT lo_export(oid, '/path/to/newfile');-- 删除对象
SELECT lo_unlink(oid);

2. 高级操作函数

-- 打开对象(返回fd)
SELECT lo_open(oid, mode);  -- mode: INV_READ(0x20000), INV_WRITE(0x40000)-- 读写操作
SELECT loread(fd, len);
SELECT lowrite(fd, buf);-- 定位
SELECT lo_lseek(fd, offset, whence);  -- whence: 0=头,1=当前,2=尾-- 关闭对象
SELECT lo_close(fd);

五、实际应用示例

1. 存储图片

-- 创建表存储图片引用
CREATE TABLE images (id SERIAL PRIMARY KEY,name TEXT,image_oid OID
);-- 导入图片
INSERT INTO images (name, image_oid) 
VALUES ('logo', lo_import('/var/www/images/logo.png'));-- 导出图片
SELECT lo_export(image_oid, '/tmp/exported_logo.png') FROM images WHERE id = 1;

2. 程序化处理 (PL/pgSQL)

CREATE OR REPLACE FUNCTION process_large_object(obj_oid OID) RETURNS void AS $$
DECLAREfd INTEGER;buf BYTEA;
BEGINfd := lo_open(obj_oid, CAST(x'20000' AS INTEGER));  -- 只读模式打开-- 读取前1KB数据buf := loread(fd, 1024);-- 处理逻辑...PERFORM lo_close(fd);
END;
$$ LANGUAGE plpgsql;

六、管理维护

1. 查看大对象

-- 查看所有大对象
SELECT oid, pg_size_pretty(lo_lseek(oid, 0, 2)) as size 
FROM pg_largeobject_metadata;

2. 清理孤立对象

-- 查找可能孤立的对象
SELECT oid FROM pg_largeobject_metadata 
WHERE oid NOT IN (SELECT image_oid FROM images WHERE image_oid IS NOT NULL);-- 安全删除(先备份!)
-- SELECT lo_unlink(oid) FROM (...上述查询...);

七、性能优化建议

  1. 块大小调整

    SET lo_compat_privileges = off;  -- 启用更细粒度的权限控制
    
  2. 事务优化

    BEGIN;
    SELECT lo_open(oid, x'40000'::int);  -- 写模式
    -- 批量操作...
    COMMIT;  -- 或 ROLLBACK 自动清理
    
  3. 与 pg_largeobject 系统表配合

    -- 分页读取大对象
    SELECT loid, pageno, data 
    FROM pg_largeobject 
    WHERE loid = 12345 
    ORDER BY pageno 
    LIMIT 100 OFFSET 0;
    

八、安全注意事项

  1. 权限控制

    -- 授予特定用户访问权限
    GRANT SELECT ON LARGE OBJECT 12345 TO app_user;-- 撤销权限
    REVOKE ALL ON LARGE OBJECT 12345 FROM public;
    
  2. SQL注入防护

    -- 不安全方式(避免!)
    EXECUTE 'SELECT lo_import(' || user_input || ')';-- 安全方式
    PERFORM lo_import(sanitized_path);
    

九、替代方案比较

方案优点缺点
lo扩展原生支持、事务安全管理复杂
bytea简单易用限制1GB
外部表不占数据库空间无事务支持
pg_largeobject直接访问低级别API

对于超过1GB的大对象存储,lo扩展仍是PostgreSQL中最可靠的选择。

http://www.dtcms.com/wzjs/616998.html

相关文章:

  • 代做网站毕业设计火炬开发区网站建设
  • 网站建设推广型企业所得税优惠政策2021年最新
  • AWS免费套餐做网站可以吗wordpress文章填写关键词描述标题
  • 你去湖北省住房城乡建设厅网站查基于wordpress 开发
  • 特色的合肥网站建设猪八戒里面做网站骗子很多
  • 做当地门户网站多少钱Wordpress如何设置运费
  • 做网站是属火的职业吗wordpress 即时
  • 网站专题教程邢台学校网站建设费用
  • 天津网站建设诺亚成都网站建设公司高新
  • 长丰县住房和建设局网站无锡网站怎么推广效果好
  • 滨州淄博网站建设福建福州罗源建设局网站
  • 织梦网站模板安装广告设计公司方案
  • 平台网站建设多少钱网页设计师必备软件
  • 建设部网站房地产资质南京网络推广外包
  • 学习吧网站导视设计报价
  • 镇江网站建设优化语言网站开发
  • 深圳市建设工程造价管理站官网企业网站建设一般考虑哪些因素?
  • 网站营销的特征有wordpress缓存文件在哪
  • 海南省住房和建设厅网站免费的网站有哪些平台
  • 上海网站排名网站运营商查询
  • 谁需要做网站的嘉兴温州建校网站
  • 网站开发快速盈利保定电子商务网站建设
  • 女子医院网站设计怎么做全网营销整合推广
  • 做网站上饶属于网站的管理 更新 维护
  • 门户网站建设的公司做网站的公司排名
  • 怎么区分营销型网站谷歌seo零基础教程
  • 西安免费做网站哪家好wordpress快递查询
  • 网站开发的代码太原网站建设价格
  • 衡水需要做网站的公司wordpress slider教程
  • 手机网站建设liedns做搬家服务网站问卷调查的目的