关于PostgreSQL的 Toast
当一行数据的长度超过4K or 8K(根据配置),就会使用Toast,没办法关闭。 PostgreSQLuses a fixed page size (commonly 8 kB),and does not allow tuples to span multiple pages. 也就是说,在安装postgresql的时候,就会指定block size,block size会指定page size的大小,当记录超过一个page size的时候,pg是不允许一行数据跨page存储,就会使用到toast。 SELECT a.attrelid,a.attname AS NAME,a.* FROM pg_class c,pg_attribute a WHERE a.attrelid = c.oid AND c.relname = 'dxy_web_event_test'; -- table name SELECT a.attrelid,a.attname,pg_catalog.format_type(a.atttypid,a.atttypmod),(SELECT substring(pg_catalog.pg_get_expr(d.adbin,d.adrelid) for 128) FROM pg_catalog.pg_attrdef d WHERE d.adrelid = a.attrelid AND d.adnum = a.attnum AND a.atthasdef),a.attnotnull,a.attnum,(SELECT c.collname FROM pg_catalog.pg_collation c,pg_catalog.pg_type t WHERE c.oid = a.attcollation AND t.oid = a.atttypid AND a.attcollation <> t.typcollation) AS attcollation,NULL AS indexdef,NULL AS attfdwoptions,a.attstorage,CASE WHEN a.attstattarget=-1 THEN NULL ELSE a.attstattarget END AS attstattarget,pg_catalog.col_description(a.attrelid,a.attnum) FROM pg_catalog.pg_attribute a WHERE a.attnum > 0 AND NOT a.attisdropped ORDER BY a.attnum; p: Value must always be stored plain. e: Value can be stored in a "secondary" relation (if relation has one,see pg_class.reltoastrelid). m: Value can be stored compressed inline. x: Value can be stored compressed inline or stored in "secondary" storage. 4种Toast策略:
https://www.qcloud.com/community/article/213 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |