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

深圳好的网站建安丘做网站的公司

深圳好的网站建,安丘做网站的公司,邢台哪儿做wap网站好,货运 东莞网站建设PostgreSQL实现了表继承#xff0c;在多重表继承下#xff0c;对上亿条不同类别的数据条目进行按型号、按月份双层分区管理#xff0c;既可在总表查阅所有条目的共有字段#xff0c;也可在各类型字表查询附加字段#xff0c;非常高效。 分区是通过继承的方式来实现的… PostgreSQL实现了表继承在多重表继承下对上亿条不同类别的数据条目进行按型号、按月份双层分区管理既可在总表查阅所有条目的共有字段也可在各类型字表查询附加字段非常高效。 分区是通过继承的方式来实现的每个分区实际上都是一个独立的表。 1继承 我们创建两个表来说明继承的特性创建一个人类表和leader表全球很多人但是只有少数人是国家leader人。我们希望能够快速地检索任何国家的leader继承特性有助于解决这个问题。 创建人类表 mydb#create table human(hid int,name varchar(20)); 创建leader表继承人类表 mydb#create table leader(flag int default 1) inherits(human); 通过继承leader表将继承它父表human的所有列。leader通过一个额外的flag列来表示它为leader。 mydb# \d human资料表 public.human栏位 | 型别 | 修饰词 -------------------------------------hid | integer | name | character varying(20) | mydb# \d leader资料表 public.leader栏位 | 型别 | 修饰词 -------------------------------------hid | integer | name | character varying(20) | flag | integer | 缺省 1继承: human 查找所有的人 mydb# select * from human;hid | name -------------1 | 小花2 | 小明3 | 小华4 | 小丽5 | 小李7 | 朱元璋8 | 特兰普 查找不是领导人的人 mydb# select * from only human;hid | name -----------1 | 小花2 | 小明3 | 小华4 | 小丽5 | 小李 查找领导人 mydb# select * from leader;hid | name | flag -------------------7 | 朱元璋 | 18 | 特兰普 | 1 2分区 分区在某些情况下可以使得查询性能显著提升。 当查询或更新访问一个分区的大部分行时可以通过该分区上的一个顺序扫描来取代分散到整个表上的索引和随机访问这样可以改善性能。 如果需求计划使用划分设计可以通过增加或移除分区来完成批量载入和删除。 ALTER TABLE NO INHERIT 和 DROP TABLE 都远快于一个批量操作。这些命令也完全避免了由批量 DELETE 造成的 VACUUM 负载。 很少使用的数据可以被迁移到便宜且较慢的存储介质上。 通过继承实现分区 mydb# create table login_log(login_id int not null,user_name varchar(20),login_time date);mydb# create table login_log_201801(check(login_timeDATE 2018-01-01 and login_timeDATE 2018-01-31)) inherits(login_log);mydb# create table login_log_201802(check(login_timeDATE 2018-02-01 and login_timeDATE 2018-02-28)) inherits(login_log);mydb# create table login_log_201803(check(login_timeDATE 2018-03-01 and login_timeDATE 2018-03-31)) inherits(login_log); 在时间列上建立索引确保性能 mydb# create index idx_login_log_201801_time on login_log_201801(login_time);mydb# create index idx_login_log_201802_time on login_log_201802(login_time);mydb# create index idx_login_log_201803_time on login_log_201803(login_time); 通过insert into login_log利用触发器和函数使得数据根据登陆日期重定向到不同的分区。 函数创建 CREATE OR REPLACE FUNCTION insert_login_log()RETURNS TRIGGER AS $$BEGINif(new.login_timeDATE 2018-01-01 and new.login_timeDATE 2018-01-31) theninsert into login_log_201801 values(new.*);elsif(new.login_timeDATE 2018-02-01 and new.login_timeDATE 2018-02-28) theninsert into login_log_201802 values(new.*);elsif(new.login_timeDATE 2018-03-01 and new.login_timeDATE 2018-03-31) theninsert into login_log_201803 values(new.*);elseRAISE EXCEPTION Date out of range!;end if;RETURN NULL;END;$$LANGUAGE plpgsql; 触发器创建 CREATE TRIGGER insert_log_triggerBEFORE INSERT ON login_logFOR EACH ROW EXECUTE PROCEDURE insert_login_log(); 数据录入 insert into login_log values(1,小明,2018-01-10);insert into login_log values(2,小明,2018-02-13);insert into login_log values(3,小明,2018-03-20);insert into login_log values(4,小丽,2018-01-31);insert into login_log values(5,小丽,2018-02-20);insert into login_log values(6,小丽,2018-03-11); 查询全部数据 mydb# select * from login_log;login_id | user_name | login_time ---------------------------------1 | 小明 | 2018-01-104 | 小丽 | 2018-01-312 | 小明 | 2018-02-135 | 小丽 | 2018-02-203 | 小明 | 2018-03-206 | 小丽 | 2018-03-11 查询分区表login_log_201801数据 mydb# select * from login_log_201801;login_id | user_name | login_time ---------------------------------1 | 小明 | 2018-01-104 | 小丽 | 2018-01-31 查询分区表login_log_201802数据 mydb# select * from login_log_201802;login_id | user_name | login_time ---------------------------------2 | 小明 | 2018-02-135 | 小丽 | 2018-02-20 查询分区表login_log_201803数据 mydb# select * from login_log_201803;login_id | user_name | login_time ---------------------------------3 | 小明 | 2018-03-206 | 小丽 | 2018-03-11 3注意点 a、分区表并不能完全的继承父表的所有属性比如唯一约束、主键、外键。而检查约束与非空约束是可以继承的。 b、修改父表的结构子表结构同时被修改。 c、reindex、vacuum命令不会影响到子表。 d、不要在父表上定义检查约束除非你想约束所有分区。 e、不要在父表上创建索引和或唯一约束因为没有任何意义。应该在每个分区上分别创建。 f、 合理的设计中父表一般不存入数据分区过滤时父表的扫描代价为零。 g、在postgresql 10中实现了分区的功能用户可以通过相应语法直接实现分区功能喜欢的朋友可以研究下。
http://www.yayakq.cn/news/5358/

相关文章:

  • 电子商务网站建设的评估邢台163信息交友
  • 苏州建设监督网站首页网站建设费入何科目
  • ps做网站编排行距网站
  • 设置个网站要多少钱七牛 wordpress 图床
  • 网站怎么建设模块centos 安装 wordpress
  • asp 网站开发 软件兰州做网站或小程序
  • 企业网站建站意义网站建设设计说明书
  • 云虚拟主机和网站建设网页素材图
  • 肇庆网站开发公司产品服务展示型网站有哪些
  • 高级网站开发工程师证书在社保网站做调动
  • wordpress删除管理站点链接专业团队广告语
  • 企业网站的维护wap浏览器在线
  • 网站新年特效什么叫营销模式
  • 购物商城网站开发实验报告网站建设合同封面模板
  • 红番茄 网站点评宣传片拍摄制作公司报价明细
  • 不同域名一样的网站网站的动态图怎么做的
  • 网站建设方案范文2000字小程序需要租服务器吗
  • 做超市海报的网站广西建设工会网站
  • 网站开发培训教程html5手机网页模板
  • 毕节网站建设网站设计专业有前途吗
  • 网文网站排名大同市住房城乡建设网站
  • 网站建设运营服务商网站seo优化检测
  • 宝塔做的网站网页打不开怎么提升网站排名
  • 网站被k后换域名 做301之外_之前发的外链怎么办做电力项目信息的网站
  • 徐州网站建设 网站推广北京做网站找哪家好
  • 网站页面关键词优化如何做线下推广
  • 个人公司网站怎么做旅游网站模板下载
  • 网站策划书撰写迅速提高网站排名
  • 优度网站建设wordpress自适应 分页
  • 网站建设需要怎样的经营范围网站网络营销方式