小编use*_*631的帖子

SELECT + INSERT 或单独插入

我有一个应用程序,其中有几台设备每秒向我的服务器发送数据。在数据库上,我有一个包含设备的表和另一个每秒发送数据的表。

设备第一次发送数据时,服务器脚本应INSERT在设备表中注册 ( ) 该设备 ID 并将数据添加到数据表中。

我的问题是,什么会更快?

  1. 执行SELECT EXISTS查询以确定INSERT设备表中是否需要一个。如果SELECT EXISTS返回 false 则执行 an INSERT,否则什么都不做。

  2. 总是执行一个INSERT语句。考虑到设备 id 是表上的主键,如果设备已经存在它会返回一个错误,否则它会插入它。

只有第一次设备发送数据时才需要一个实际的INSERT,之后INSERT就不需要了。

PostgreSQL 版本是 9.4。

设备表定义如下:

CREATE TABLE common.tag
(
  customer integer,
  hostname character varying(150),
  description text,
  model integer,
  configprofile integer,
  id character varying(150) NOT NULL,
  host integer,
  CONSTRAINT tag_pk PRIMARY KEY (id),
  CONSTRAINT tag_fk_client FOREIGN KEY (customer)
      REFERENCES common.customer (id) MATCH SIMPLE
      ON UPDATE NO ACTION ON …
Run Code Online (Sandbox Code Playgroud)

postgresql insert select referential-integrity

5
推荐指数
1
解决办法
2710
查看次数