小编Ale*_*huk的帖子

SELECT ... WHERE NOT IN(SELECT ..)与字符串的性能急剧下降

问题:

SELECT new_filename
FROM tmp2_import_lightnings_filenames
WHERE new_filename
    NOT IN (SELECT filename FROM service.import_lightnings_filenames LIMIT 64500)
LIMIT 1;
Run Code Online (Sandbox Code Playgroud)

执行时间:62毫秒.

SELECT new_filename
FROM tmp2_import_lightnings_filenames
WHERE new_filename
    NOT IN (SELECT filename FROM service.import_lightnings_filenames LIMIT 65000)
LIMIT 1;
Run Code Online (Sandbox Code Playgroud)

执行时间:4.742秒.

(所有LIMITS仅用于测试).

巨大的滞后!它呈指数增长.

表:

CREATE TABLE public.tmp2_import_lightnings_filenames (
  new_filename VARCHAR(63) NOT NULL, 
  CONSTRAINT tmp2_import_lightnings_filenames_pkey PRIMARY KEY(new_filename)
) WITHOUT OIDS;
Run Code Online (Sandbox Code Playgroud)

表大小:7304字符串

数据示例: /xml/2012-07-13/01/01-24.xml

CREATE TABLE service.import_lightnings_filenames (
  id SERIAL, 
  filename VARCHAR(63) NOT NULL, 
  imported BOOLEAN DEFAULT false, 
  strokes_num INTEGER, 
  CONSTRAINT import_lightnings_filenames_pkey PRIMARY KEY(id) …
Run Code Online (Sandbox Code Playgroud)

sql postgresql performance

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

标签 统计

performance ×1

postgresql ×1

sql ×1