เดฐเดพเดเตเดฏเดคเตเดคเตเดเดจเตเดณเดฎเตเดณเตเดณ เดธเตเดฏเดฟเตฝเดธเต เดเดซเตเดธเตเดเดณเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดเดฏเดฟเดฐเดเตเดเดฃเดเตเดเดฟเดจเต เดฎเดพเดจเตเดเตผเดฎเดพเดฐเตเดเต เดฑเตเดเตเดเตเตผเดกเต
เด
เดคเดฟเดจเดพเตฝ, เดเดฑเตเดฑเดตเตเด เดเตเดเตเดคเตฝ เดฒเตเดกเตเดเตเดฏเตเดค เดกเดพเดฑเตเดฑเดพเดฌเตเดธเตเดเดณเดฟเดฒเตเดจเตเดจเดฟเดฒเต โเดเดจเดคเตเดคโ เด
เดจเตเดตเตเดทเดฃเดเตเดเตพ เดตเตเดฃเตเดเตเด เดตเดฟเดถเดเดฒเดจเด เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเตฝ เด
เดคเดฟเดถเดฏเดฟเดเตเดเดพเดจเดฟเดฒเตเดฒ - เดจเดฎเตเดฎเตเดเต เดธเตเดตเดจเตเดคเด
เดเตเดเดพเดคเต, เดเตเดเตเดคเตฝ เด เดจเตเดตเตเดทเดฃเด เดฐเดธเดเดฐเดฎเดพเดฏ เดเดฐเต เดเดฆเดพเดนเดฐเดฃเด เดตเตเดณเดฟเดชเตเดชเตเดเตเดคเตเดคเดฟ เดเดฆเตเดฏเด เดเดชเตเดฑเตเดฑเดฟเดฎเตเดธเตเดทเดจเตเด เดชเดฟเดจเตเดจเต เดชเตเตผเดซเตเดฎเตปเดธเต เดกเดฟเดเตเดฐเตเดกเตเดทเดจเตเด เดจเดฟเดฐเดตเดงเดฟ เดเตเดฎเตเดเตพ เด เดคเดฟเดจเตเดฑเต เดคเตเดเตผเดเตเดเดฏเดพเดฏ เดชเดฐเดฟเดทเตเดเดฐเดฃเดคเตเดคเตเดเต เด เดญเตเดฏเตผเดคเตเดฅเดฟเดเตเดเตเดจเตเดจเต, เด เดต เดเดฐเตเดจเตเดจเตเด เดฎเดฟเดเดเตเด เดเดฆเตเดฆเตเดถเตเดฏเดคเตเดคเตเดเต เดฎเดพเดคเตเดฐเด เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเต.
0: เดเดชเดฏเตเดเตเดคเดพเดตเดฟเดจเต เดเดจเตเดคเดพเดฃเต เดตเตเดฃเตเดเดคเต?
[เดเต.เดกเดฟ.เดชเดฟ.เดตเดฟ
เดชเตเดฐเต เดเดชเดฏเตเดเดฟเดเตเดเต เดเดฐเต "เดฆเตเดฐเตเดค" เดคเดฟเดฐเดฏเดฒเดฟเดจเต เดเตเดฑเดฟเดเตเดเต เดธเดเดธเดพเดฐเดฟเดเตเดเตเดฎเตเดชเตเตพ เดเดฐเต เดเดชเดฏเตเดเตเดคเดพเดตเต เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ เดเดจเตเดคเดพเดฃเต เด
เตผเดคเตเดฅเดฎเดพเดเตเดเตเดจเตเดจเดคเต? เดเดฐเต เดเดชเดธเตโเดเตเดฐเดฟเดเดเดฟเดจเดพเดฏเตเดณเตเดณ โเดธเดคเตเดฏเดธเดจเตเดงเดฎเดพเดฏโ เดคเดฟเดฐเดฏเดฒเดพเดฏเดฟ เดเดคเต เดเดฐเดฟเดเตเดเดฒเตเด เดฎเดพเดฑเดฟเดฒเตเดฒ ... LIKE '%ัะพะทะฐ%'
- เดเดพเดฐเดฃเด เดซเดฒเดคเตเดคเดฟเตฝ เดฎเดพเดคเตเดฐเดฎเดฒเตเดฒ เดเตพเดชเตเดชเตเดเตเดจเตเดจเต 'ะ ะพะทะฐะปะธั'
ะธ 'ะะฐะณะฐะทะธะฝ ะ ะพะทะฐ'
เดชเดเตเดทเต 'ะัะพะทะฐ'
เดชเตเดฒเตเด 'ะะพะผ ะะตะดะฐ ะะพัะพะทะฐ'
.
เดจเดฟเดเตเดเตพ เด
เดตเดจเต เดจเตฝเดเตเดฎเตเดจเตเดจเต เดเดชเดฏเตเดเตเดคเดพเดตเต เดฆเตเดจเดเดฆเดฟเดจ เดคเดฒเดคเตเดคเดฟเตฝ เด
เดจเตเดฎเดพเดจเดฟเดเตเดเตเดจเตเดจเต เดตเดพเดเตเดเดฟเดจเตเดฑเต เดคเตเดเดเตเดเดฎเดจเตเดธเดฐเดฟเดเตเดเต เดคเดฟเดฐเดฏเตเด เดคเดฒเดเตเดเตเดเตเดเดฟเตฝ เด
เดคเต เดเตเดเตเดคเตฝ เดชเตเดฐเดธเดเตเดคเดฎเดพเดเตเดเตเด เดเดฐเดเดญเดฟเดเตเดเตเดจเตเดจเต เดชเตเดฐเดตเตเดถเดฟเดเตเดเต. เดจเดฟเดเตเดเตพ เด
เดคเต เดเตเดฏเตเดฏเตเด เดเดคเดพเดฃเตเดเต เดคเตฝเดเตเดทเดฃเด - เดเดจเตเดฑเตผเดฒเตเดจเดฟเดฏเตผ เดเตปเดชเตเดเตเดเดฟเดจเดพเดฏเดฟ.
1: เดเตเดฎเดคเดฒ เดชเดฐเดฟเดฎเดฟเดคเดชเตเดชเตเดเตเดคเตเดคเตเด
เด
เดคเดฟเดฒเตเดชเดฐเดฟเดฏเดพเดฏเดฟ, เดเดฐเต เดตเตเดฏเดเตเดคเดฟ เดชเตเดฐเดคเตเดฏเตเดเดฎเดพเดฏเดฟ เดชเตเดฐเดตเตเดถเดฟเดเตเดเดฟเดฒเตเดฒ 'ัะพะท ะผะฐะณะฐะท'
, เด
เดคเดฟเดจเดพเตฝ เดจเดฟเดเตเดเตพ เดเดฐเต เดตเดพเดเตเดเตเด เดชเตเดฐเดฟเดซเดฟเดเตโเดธเต เดเดชเดฏเตเดเดฟเดเตเดเต เดคเดฟเดฐเดฏเตเดฃเตเดเดคเตเดฃเตเดเต. เดเดฒเตเดฒ, เดฎเตเดฎเตเดชเดคเตเดคเต เดตเดพเดเตเดเดฟเดจเตเดฑเต เดตเตเดเดคเตเดคเดฟเดฒเตเดณเตเดณ เดธเตเดเดจเดฏเตเดเต เดชเตเดฐเดคเดฟเดเดฐเดฟเดเตเดเตเดจเตเดจเดคเต เดเดฐเต เดเดชเดฏเตเดเตเดคเดพเดตเดฟเดจเต เดฎเตเดฎเตเดชเดคเตเดคเตเดคเดฟเดจเต เดฒเดเตเดทเตเดฏเดคเตเดคเตเดเต "เดเตเดฑเดเตเดเต" เดเดพเดฃเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดเตเดเดพเตพ เดตเดณเดฐเต เดเดณเตเดชเตเดชเดฎเดพเดฃเต - เดเดคเต เดธเตเตผเดเตเดเต เดเดเตเดเดฟเดจเตเด เดเดคเต เดเดเตเดเดจเต เดเตเดเดพเดฐเตเดฏเด เดเตเดฏเตเดฏเตเดจเตเดจเตเดตเตเดจเตเดจเต เดจเตเดเตเดเตเด.
เดเดจเดฑเตฝ เดถเดฐเดฟ เดชเตเดฐเดถเตเดจเดคเตเดคเดฟเดจเตเดณเตเดณ เดเดตเดถเตเดฏเดเดคเดเตพ เดฐเตเดชเดชเตเดชเตเดเตเดคเตเดคเตเดจเตเดจเดคเต เดชเดเตเดคเดฟเดฏเดฟเดฒเดงเดฟเดเด เดชเดฐเดฟเดนเดพเดฐเดฎเดพเดฃเต. เดเดฟเดฒเดชเตเดชเตเตพ เดถเตเดฐเดฆเตเดงเดพเดชเตเตผเดตเดฎเดพเดฏ เดเดชเดฏเตเดเด เดเตเดธเต เดตเดฟเดถเดเดฒเดจเด
เดเดฐเต เด เดฎเตเตผเดคเตเดค เดกเตเดตเดฒเดชเตเดชเตผ เดเดจเตเดคเดพเดฃเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเต?
1.0: เดฌเดพเดนเตเดฏ เดคเดฟเดฐเดฏเตฝ เดเดเตเดเดฟเตป
เด, เดคเดฟเดฐเดฏเตฝ เดฌเตเดฆเตเดงเดฟเดฎเตเดเตเดเดพเดฃเต, เดเดจเดฟเดเตเดเต เดเดจเตเดจเตเด เดเตเดฏเตเดฏเดพเตป เดคเดพเตฝเดชเตเดชเดฐเตเดฏเดฎเดฟเดฒเตเดฒ - เดจเดฎเตเดเตเดเต เด เดคเต devops-เดจเต เดจเตฝเดเดพเด! เดกเดพเดฑเตเดฑเดพเดฌเตเดธเดฟเดจเต เดชเตเดฑเดคเตเดคเต เดเดฐเต เดธเตเตผเดเตเดเต เดเดเตเดเดฟเตป เดตเดฟเดจเตเดฏเดธเดฟเดเตเดเดพเตป เด เดตเดฐเต เด เดจเตเดตเดฆเดฟเดเตเดเตเด: เดธเตเดซเดฟเตปเดเตเดธเต, เดเดฒเดพเดธเตเดฑเตเดฑเดฟเดเต เดธเตเตผเดเตเดเต,...
เดธเดฟเตปเดเตเดฐเตเดฃเตเดธเตเดทเดจเตเด เดฎเดพเดฑเตเดฑเดเตเดเดณเตเดเต เดตเตเดเดคเดฏเตเด เดเดฃเดเตเดเดฟเดฒเตเดเตเดคเตเดคเต เด
เดงเตเดตเดพเดจเด-เดเดจเตเดฑเตปเดธเตเดตเต เดเดฃเตเดเตเดเดฟเดฒเตเด เดเดฐเต เดชเตเดฐเดตเตผเดคเตเดคเดจ เดเดชเตเดทเตป. เดเดจเตเดจเดพเตฝ เดเดเตเดเดณเตเดเต เดเดพเดฐเตเดฏเดคเตเดคเดฟเดฒเดฒเตเดฒ, เดเดพเดฐเดฃเด เดเดฐเต เดเตเดฒเดฏเดจเตเดฑเดฟเดจเตเด เด
เดตเดจเตเดฑเต เด
เดเตเดเตเดฃเตเดเต เดกเดพเดฑเตเดฑเดฏเตเดเต เดเดเตเดเดเตเดเตเดเดฟเดจเตเดณเตเดณเดฟเตฝ เดฎเดพเดคเตเดฐเดฎเดพเดฃเต เดคเดฟเดฐเดฏเตฝ เดจเดเดคเตเดคเตเดจเตเดจเดคเต. เดกเดพเดฑเตเดฑเดฏเตเดเตเดเต เดเดฏเตผเดจเตเดจ เดตเตเดฐเดฟเดฏเดฌเดฟเดณเดฟเดฑเตเดฑเดฟ เดเดฃเตเดเต - เดฎเดพเดจเตเดเตผ เดเดชเตเดชเตเตพ เดเดพเตผเดกเดฟเตฝ เดจเตฝเดเดฟเดฏเดฟเดเตเดเตเดฃเตเดเตเดเตเดเดฟเตฝ 'ะะฐะณะฐะทะธะฝ ะ ะพะทะฐ'
, เดชเดฟเดจเตเดจเตเดเต 5-10 เดธเตเดเตเดเตปเดกเตเดเตพเดเตเดเต เดถเตเดทเด เด
เดตเตป เดคเดจเตเดฑเต เดเดฎเตเดฏเดฟเตฝ เด
เดตเดฟเดเต เดธเตเดเดฟเดชเตเดชเดฟเดเตเดเดพเตป เดฎเดฑเดจเตเดจเตเดตเตเดจเตเดจเตเด เด
เดคเต เดเดฃเตเดเตเดคเตเดคเดฟ เดถเดฐเดฟเดฏเดพเดเตเดเดพเตป เดเดเตเดฐเดนเดฟเดเตเดเตเดจเตเดจเตเดตเตเดจเตเดจเตเด เด
เดฆเตเดฆเตเดนเด เดเดคเดฟเดจเดเด เดเตผเดคเตเดคเดฟเดฐเดฟเดเตเดเดพเด.
เด เดคเดฟเดจเดพเตฝ - เดจเดฎเตเดเตเดเต "เดจเตเดฐเดฟเดเตเดเต เดกเดพเดฑเตเดฑเดพเดฌเตเดธเดฟเตฝ" เดคเดฟเดฐเดฏเตเด. เดญเดพเดเตเดฏเดตเดถเดพเตฝ, PostgreSQL เดเดคเต เดเตเดฏเตเดฏเดพเตป เดเดเตเดเดณเต เด เดจเตเดตเดฆเดฟเดเตเดเตเดจเตเดจเต, เดเดฐเต เดเดชเตเดทเตป เดฎเดพเดคเตเดฐเดฎเดฒเตเดฒ - เดเดเตเดเตพ เด เดต เดจเตเดเตเดเตเด.
1.1: "เดธเดคเตเดฏเดธเดจเตเดงเดฎเดพเดฏ" เดเดชเดธเตโเดเตเดฐเดฟเดเดเต
"เดธเดฌเตโเดธเตเดเตเดฐเดฟเดเดเต" เดเดจเตเดจ เดตเดพเดเตเดเต เดเดเตเดเตพ เดฎเตเดฑเตเดเต เดชเดฟเดเดฟเดเตเดเตเดจเตเดจเต. เดเดจเตเดจเดพเตฝ เดธเดฌเตโเดธเตโเดเตเดฐเดฟเดเดเดฟเดฒเตเดเตเดฏเตเดณเตเดณ เดเตปเดกเตเดเตโเดธเต เดคเดฟเดฐเดฏเดฒเดฟเดจเต (เดธเดพเดงเดพเดฐเดฃ เดเดเตโเดธเตโเดชเตเดฐเดทเดจเตเดเตพ เดตเดดเดฟ เดชเตเดฒเตเด!) เดเดฐเต เดฎเดฟเดเดเตเดเดคเตเดฃเตเดเต
เดฎเตเดกเตฝ เดฒเดณเดฟเดคเดฎเดพเดเตเดเดพเตป เดเดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดชเตเดฒเตเดฑเตเดฑเต เดเดเตเดเตเดเดพเตป เดถเตเดฐเดฎเดฟเดเตเดเดพเด:
CREATE TABLE firms(
id
serial
PRIMARY KEY
, name
text
);
เดฏเดฅเดพเตผเดคเตเดฅ เดธเตเดฅเดพเดชเดจเดเตเดเดณเตเดเต 7.8 เดฆเดถเดฒเดเตเดทเด เดฑเตเดเตเดเตเตผเดกเตเดเตพ เดเดเตเดเตพ เด เดตเดฟเดเต เด เดชเตโเดฒเตเดกเต เดเตเดฏเตเดฏเตเดเดฏเตเด เด เดตเดฏเต เดธเตเดเดฟเดเดฏเดฟเดฒเดพเดเตเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดจเตเดจเต:
CREATE EXTENSION pg_trgm;
CREATE INDEX ON firms USING gin(lower(name) gin_trgm_ops);
เดเดจเตเดฑเตผเดฒเตเดจเดฟเดฏเตผ เดคเดฟเดฐเดฏเดฒเดฟเดจเดพเดฏเดฟ เดเดฆเตเดฏเดคเตเดคเต 10 เดฑเตเดเตเดเตเตผเดกเตเดเตพ เดจเตเดเตเดเดพเด:
SELECT
*
FROM
firms
WHERE
lower(name) ~ ('(^|s)' || 'ัะพะทะฐ')
ORDER BY
lower(name) ~ ('^' || 'ัะพะทะฐ') DESC -- ัะฝะฐัะฐะปะฐ "ะฝะฐัะธะฝะฐััะธะตัั ะฝะฐ"
, lower(name) -- ะพััะฐะปัะฝะพะต ะฟะพ ะฐะปัะฐะฒะธัั
LIMIT 10;
เดถเดฐเดฟ, เด เดคเต... 26เดเดเดเดธเต, 31เดเดเดฌเดฟ เดฑเตเดกเต เดกเดพเดฑเตเดฑเดฏเตเด 1.7K-เตฝ เดเตเดเตเดคเตฝ เดซเดฟเตฝเดเตเดเตผ เดเตเดฏเตเดค เดฑเตเดเตเดเตเตผเดกเตเดเดณเตเด - 10 เดคเดฟเดฐเดเตเดเดตเดฏเตเดเตเดเต. เดเดตเตผเดนเตเดกเต เดเตเดฒเดตเตเดเตพ เดตเดณเดฐเต เดเตเดเตเดคเดฒเดพเดฃเต, เดเตเดเตเดคเตฝ เดเดพเดฐเตเดฏเดเตเดทเดฎเดฎเดพเดฏ เดเดจเตเดคเตเดเตเดเดฟเดฒเตเด เดเดฒเตเดฒเต?
1.2: เดเตเดเตเดธเตเดฑเตเดฑเต เดชเตเดฐเดเดพเดฐเด เดคเดฟเดฐเดฏเดฃเต? เดเดคเต FTS เดเดฃเต!
เดคเตเตผเดเตเดเดฏเดพเดฏเตเด, PostgreSQL เดตเดณเดฐเต เดถเดเตเดคเดฎเดพเดฃเต
CREATE INDEX ON firms USING gin(to_tsvector('simple'::regconfig, lower(name)));
SELECT
*
FROM
firms
WHERE
to_tsvector('simple'::regconfig, lower(name)) @@ to_tsquery('simple', 'ัะพะทะฐ:*')
ORDER BY
lower(name) ~ ('^' || 'ัะพะทะฐ') DESC
, lower(name)
LIMIT 10;
เดเดตเดฟเดเต เด เดจเตเดตเตเดทเดฃ เดจเดฟเตผเดตเตเดตเดนเดฃเดคเตเดคเดฟเดจเตเดฑเต เดธเดฎเดพเดจเตเดคเดฐเดตเตฝเดเตเดเดฐเดฃเด เดเดเตเดเดณเต เด เตฝเดชเตเดชเด เดธเดนเดพเดฏเดฟเดเตเดเต, เดธเดฎเดฏเด เดชเดเตเดคเดฟเดฏเดพเดฏเดฟ เดเตเดฑเดเตเดเต 11 เดฎเดฟ. เดเดเตเดเตพเดเตเดเต 1.5 เดฎเดเดเตเดเต เดเตเดฑเดตเต เดตเดพเดฏเดฟเดเตเดเตเดฃเตเดเดฟ เดตเดจเตเดจเต - เดฎเตเดคเตเดคเดคเตเดคเดฟเตฝ 20MB. เดเดจเตเดจเดพเตฝ เดเดตเดฟเดเต, เดเตเดฑเดตเต, เดจเดฒเตเดฒเดคเต, เดเดพเดฐเดฃเด เดจเดฎเตเดฎเตพ เดตเดพเดฏเดฟเดเตเดเตเดจเตเดจ เดตเตเดณเดฟเดฏเด เดตเดฒเตเดคเดพเดฏเดคเดฟเดจเดพเตฝ, เดเดฐเต เดเดพเดทเต เดจเดทเตเดเดชเตเดชเตเดเดพเดจเตเดณเตเดณ เดธเดพเดงเตเดฏเดค เดเตเดเตเดคเดฒเดพเดฃเต, เดเตเดเดพเดคเต เดกเดฟเดธเตเดเดฟเตฝ เดจเดฟเดจเตเดจเต เดตเดพเดฏเดฟเดเตเดเตเดจเตเดจ เดกเดพเดฑเตเดฑเดฏเตเดเต เดเดฐเต เด เดงเดฟเด เดชเตเดเตเด เด เดญเตเดฏเตผเดคเตเดฅเดจเดฏเตเดเตเดเตเดณเตเดณ เดธเดพเดงเตเดฏเดคเดฏเตเดณเตเดณ "เดฌเตเดฐเตเดเตเดเตเดเตพ" เดเดฃเต.
1.3: เดเดชเตเดชเตเดดเตเด เดเดทเตเดเดฎเดพเดฃเต?
เดฎเตเดฎเตเดชเดคเตเดคเต เด เดญเตเดฏเตผเดคเตเดฅเดจ เดเดฒเตเดฒเดพเดตเตผเดเตเดเตเด เดจเดฒเตเดฒเดคเดพเดฃเต, เดชเดเตเดทเต เดเดฐเต เดฆเดฟเดตเดธเด เดจเตเดฑเดพเดฏเดฟเดฐเด เดคเดตเดฃ เดตเดฒเดฟเดเตเดเดพเตฝ เดฎเดพเดคเตเดฐเดฎเต เด เดคเต เดตเดฐเต 2TB เดกเดพเดฑเตเดฑ เดตเดพเดฏเดฟเดเตเดเตเด. เดฎเดฟเดเดเตเด เดธเดพเดนเดเดฐเตเดฏเดคเตเดคเดฟเตฝ, เดฎเตเดฎเตเดฎเดฑเดฟเดฏเดฟเตฝ เดจเดฟเดจเตเดจเต, เดชเดเตเดทเต เดจเดฟเดเตเดเตพเดเตเดเต เดญเดพเดเตเดฏเดฎเดฟเดฒเตเดฒเตเดเตเดเดฟเตฝ, เดกเดฟเดธเตเดเดฟเตฝ เดจเดฟเดจเตเดจเต. เด เดคเตเดเตเดฃเตเดเต เดเตเดฑเตเดคเดพเดเตเดเดพเตป เดถเตเดฐเดฎเดฟเดเตเดเดพเด.
เดเดชเดฏเตเดเตเดคเดพเดตเต เดเดจเตเดคเดพเดฃเต เดเดพเดฃเดพเตป เดเดเตเดฐเดนเดฟเดเตเดเตเดจเตเดจเดคเตเดจเตเดจเต เดจเดฎเตเดเตเดเต เดเตผเดเตเดเดพเด เดเดฆเตเดฏเด "เดเดคเดฟเตฝ เดคเตเดเดเตเดเตเดจเตเดจเต...". เด
เดคเดฟเดจเดพเตฝ เดเดคเต เด
เดคเดฟเดจเตเดฑเต เดถเตเดฆเตเดงเดฎเดพเดฏ เดฐเตเดชเดคเตเดคเดฟเดฒเดพเดฃเต text_pattern_ops
! เดเดเตเดเตพ เดคเดฟเดฐเดฏเตเดจเตเดจ 10 เดฑเตเดเตเดเตเตผเดกเตเดเตพ เดตเดฐเต "เดฎเดคเดฟเดฏเดพเดฏเดฟเดฒเตเดฒเตเดเตเดเดฟเตฝ" เดฎเดพเดคเตเดฐเด, FTS เดคเดฟเดฐเดฏเตฝ เดเดชเดฏเตเดเดฟเดเตเดเต เดเดเตเดเตพ เด
เดต เดตเดพเดฏเดฟเดเตเดเต เดชเตเตผเดคเตเดคเดฟเดฏเดพเดเตเดเตเดฃเตเดเดคเตเดฃเตเดเต:
CREATE INDEX ON firms(lower(name) text_pattern_ops);
SELECT
*
FROM
firms
WHERE
lower(name) LIKE ('ัะพะทะฐ' || '%')
LIMIT 10;
เดฎเดฟเดเดเตเด เดชเตเดฐเดเดเดจเด - เดเดเต 0.05ms, 100KB-เดฏเดฟเตฝ เด เตฝเดชเตเดชเด เดเตเดเตเดคเดฒเตเด เดตเดพเดฏเดฟเดเตเดเตเด! เดจเดฎเตเดฎเตพ เดฎเดพเดคเตเดฐเด เดฎเดฑเดจเตเดจเต เดชเตเดฐเต เดชเตเดฐเดเดพเดฐเด เด เดเตเดเตเดเตเดเดซเดฒเดเตเดเดณเดฟเตฝ เดเดชเดฏเตเดเตเดคเดพเดตเต เดจเดทเตเดเดชเตเดชเตเดเดพเดคเดฟเดฐเดฟเดเตเดเดพเตป:
SELECT
*
FROM
firms
WHERE
lower(name) LIKE ('ัะพะทะฐ' || '%')
ORDER BY
lower(name)
LIMIT 10;
เด, เดเดจเตเดคเตเดเตเดเดฟเดฒเตเด เดเดชเตเดชเตเตพ เด เดคเตเดฐ เดฎเดจเตเดนเดฐเดฎเดฒเตเดฒ - เดเดฐเต เดธเตเดเดฟเด เดเดฃเตเดเตเดจเตเดจเต เดคเตเดจเตเดจเตเดจเตเดจเต, เดชเดเตเดทเต เดธเตเตผเดเตเดเดฟเดเดเต เด เดคเดฟเดจเต เดฎเดฑเดฟเดเดเดเตเดเตเดจเตเดจเต ... เดคเตเตผเดเตเดเดฏเดพเดฏเตเด เดเดคเต เดฎเตเดฎเตเดชเดคเตเดคเต เดเดชเตเดทเดจเตเดเตเดเดพเตพ เดชเดฒเดฎเดเดเตเดเต เดซเดฒเดชเตเดฐเดฆเดฎเดพเดฃเต, เดชเดเตเดทเต ...
1.4: "เดเดฐเต เดซเดฏเตฝ เดเดชเดฏเตเดเดฟเดเตเดเต เดชเตเตผเดคเตเดคเดฟเดฏเดพเดเตเดเตเด"
เดเดจเตเดจเดพเตฝ เดถเตเดฐเตเดฃเดฟ เด เดจเตเดธเดฐเดฟเดเตเดเต เดคเดฟเดฐเดฏเดพเดจเตเด เดธเดพเดงเดพเดฐเดฃ เดฐเตเดคเดฟเดฏเดฟเตฝ เดธเตเตผเดเตเดเดฟเดเดเต เดเดชเดฏเตเดเดฟเดเตเดเดพเดจเตเด เดจเดฟเดเตเดเดณเต เด เดจเตเดตเดฆเดฟเดเตเดเตเดจเตเดจ เดเดฐเต เดธเตเดเดฟเดเดฏเตเดฃเตเดเต - เดธเดพเดงเดพเดฐเดฃ btree!
CREATE INDEX ON firms(lower(name));
เด เดคเดฟเดจเตเดณเตเดณ เด เดญเตเดฏเตผเดคเตเดฅเดจ เดฎเดพเดคเตเดฐเด "เดธเตเดตเดฎเตเดงเดฏเดพ เดถเตเดเดฐเดฟเดเตเดเตเด":
SELECT
*
FROM
firms
WHERE
lower(name) >= 'ัะพะทะฐ' AND
lower(name) <= ('ัะพะทะฐ' || chr(65535)) -- ะดะปั UTF8, ะดะปั ะพะดะฝะพะฑะฐะนัะพะฒัั
- chr(255)
ORDER BY
lower(name)
LIMIT 10;
เดฎเดฟเดเดเตเดเดคเต - เดธเตเตผเดเตเดเดฟเดเดเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเต, เดเตเดเดพเดคเต เดตเดฟเดญเดต เดเดชเดญเตเดเด "เดธเตเดเตเดทเตเดฎเดฎเดพเดฏเดฟ" เดคเตเดเดฐเตเดจเตเดจเต, "เดถเตเดฆเตเดงเดฎเดพเดฏ" FTS เดจเตเดเตเดเดพเตพ เดเดฏเดฟเดฐเดเตเดเดฃเดเตเดเดฟเดจเต เดฎเดเดเตเดเต เดเตเดเตเดคเตฝ เดซเดฒเดชเตเดฐเดฆเดฎเดพเดฃเต! เดเดฐเตเดฑเตเดฑ เด เดญเตเดฏเตผเดคเตเดฅเดจเดฏเดพเดฏเดฟ เดเดคเต เดเตเดเตเดเดฟเดเตเดเตเตผเดเตเดเตเด เดฎเดพเดคเตเดฐเดฎเดพเดฃเต เด เดตเดถเตเดทเดฟเดเตเดเตเดจเตเดจเดคเต:
(
SELECT
*
FROM
firms
WHERE
lower(name) >= 'ัะพะทะฐ' AND
lower(name) <= ('ัะพะทะฐ' || chr(65535)) -- ะดะปั UTF8, ะดะปั ะพะดะฝะพะฑะฐะนัะพะฒัั
ะบะพะดะธัะพะฒะพะบ - chr(255)
ORDER BY
lower(name)
LIMIT 10
)
UNION ALL
(
SELECT
*
FROM
firms
WHERE
to_tsvector('simple'::regconfig, lower(name)) @@ to_tsquery('simple', 'ัะพะทะฐ:*') AND
lower(name) NOT LIKE ('ัะพะทะฐ' || '%') -- "ะฝะฐัะธะฝะฐััะธะตัั ะฝะฐ" ะผั ัะถะต ะฝะฐัะปะธ ะฒััะต
ORDER BY
lower(name) ~ ('^' || 'ัะพะทะฐ') DESC -- ะธัะฟะพะปัะทัะตะผ ัั ะถะต ัะพััะธัะพะฒะบั, ััะพะฑั ะะ ะฟะพะนัะธ ะฟะพ btree-ะธะฝะดะตะบัั
, lower(name)
LIMIT 10
)
LIMIT 10;
เดฐเดฃเตเดเดพเดฎเดคเตเดคเต เดธเดฌเตเดเตเดตเดฑเดฟ เดเดเตเดธเดฟเดเตเดฏเตเดเตเดเต เดเตเดฏเตเดคเตเดตเตเดจเตเดจเดคเต เดถเตเดฐเดฆเตเดงเดฟเดเตเดเตเด เดเดฆเตเดฏเดคเตเดคเตเดคเต เดชเตเดฐเดคเตเดเตเดทเดฟเดเตเดเดคเดฟเดฒเตเด เดเตเดฑเดตเดพเดฃเตเดเตเดเดฟเตฝ เดฎเดพเดคเตเดฐเด เด
เดตเดธเดพเดจเดคเตเดคเต LIMIT
เดตเดฐเดฟเดเดณเตเดเต เดเดฃเตเดฃเด. เด
เดจเตเดตเตเดทเดฃ เดเดชเตเดฑเตเดฑเดฟเดฎเตเดธเตเดทเดจเตเดฑเต เด เดฐเตเดคเดฟเดฏเตเดเตเดเตเดฑเดฟเดเตเดเดพเดฃเต เดเดพเตป เดธเดเดธเดพเดฐเดฟเดเตเดเตเดจเตเดจเดคเต
เด เดคเต, เดเดเตเดเตพเดเตเดเต เดเดชเตเดชเตเตพ เดฎเตเดถเดชเตเดชเตเดฑเดคเตเดคเต เดฌเดฟเดเตเดฐเตเดฏเตเด เดเดฟเดจเตเดจเตเด เดเดฃเตเดเต, เดชเดเตเดทเต เดธเตเดฅเดฟเดคเดฟเดตเดฟเดตเดฐเดเตเดเดฃเดเตเดเดจเตเดธเดฐเดฟเดเตเดเต เดเดคเต เดฎเดพเดฑเตเดจเตเดจเต 10% เตฝ เดคเดพเดดเต เด เดญเตเดฏเตผเดคเตเดฅเดจเดเตพ เดฐเดฃเตเดเดพเดฎเดคเตเดคเต เดฌเตเดฒเตเดเตเดเดฟเดจเตเดฑเต เดจเดฟเตผเดตเตเดตเดนเดฃเดคเตเดคเดฟเดฒเตเดเตเดเต เดเดคเตเดคเตเดจเตเดจเต. เด เดคเดพเดฏเดคเต, เดเดพเดธเตโเดเตเดเดฟเดจเดพเดฏเดฟ เดฎเตเตปเดเตเดเตเดเดฟ เด เดฑเดฟเดฏเดพเดตเตเดจเตเดจ เด เดคเตเดคเดฐเด เดธเดพเดงเดพเดฐเดฃ เดชเดฐเดฟเดฎเดฟเดคเดฟเดเตพ เดเดณเตเดณเดคเดฟเดจเดพเตฝ, เดธเตเตผเดตเตผ เดตเดฟเดญเดตเดเตเดเดณเตเดเต เดฎเตเดคเตเดคเด เดเดชเดญเตเดเด เดเดเดฆเตเดถเด เดเดฏเดฟเดฐเด เดฎเดเดเตเดเต เดเตเดฑเดฏเตเดเตเดเดพเตป เดเดเตเดเตพเดเตเดเต เดเดดเดฟเดเตเดเต!
1.5*: เดจเดฎเตเดเตเดเต เดเดฐเต เดซเดฏเตฝ เดเดฒเตเดฒเดพเดคเต เดเตเดฏเตเดฏเดพเตป เดเดดเดฟเดฏเตเด
เดฎเตเดเดณเดฟเตฝ LIKE
เดคเตเดฑเตเดฑเดพเดฏ เดธเตเตผเดเตเดเดฟเดเดเต เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดเดเตเดเดณเต เดคเดเดเตเดเต. เดเดจเตเดจเดพเตฝ, USING เดเดชเตเดชเดฑเตเดฑเตเดฑเตผ เดตเตเดฏเดเตเดคเดฎเดพเดเตเดเดฟเดเตเดเตเดฃเตเดเต เดเดคเต "เดถเดฐเดฟเดฏเดพเดฏ เดชเดพเดคเดฏเดฟเตฝ เดธเดเตเดเดฎเดพเดเตเดเดพเตป" เดเดดเดฟเดฏเตเด:
เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟเดฏเดพเดฏเดฟ เด เดคเต เด เดจเตเดฎเดพเดจเดฟเดเตเดเดชเตเดชเตเดเตเดจเตเดจเต
ASC
. เดเตเดเดพเดคเต, เดเดฐเต เดเตเดฒเตเดธเดฟเตฝ เดเดฐเต เดจเดฟเตผเดฆเตเดฆเดฟเดทเตเด เดธเตเตผเดเตเดเต เดเดชเตเดชเดฑเตเดฑเตเดฑเดฑเตเดเต เดชเตเดฐเต เดจเดฟเดเตเดเตพเดเตเดเต เดตเตเดฏเดเตเดคเดฎเดพเดเตเดเดพเตป เดเดดเดฟเดฏเตเดUSING
. เดธเตเตผเดเตเดเต เดเดชเตเดชเดฑเตเดฑเตเดฑเตผ เดเดฟเดฒ เดฌเดฟ-เดเตเดฐเต เดเดชเตเดชเดฑเตเดฑเตเดฑเตผเดฎเดพเดฐเตเดเต เดเตเดเตเดเดฌเดคเตเดคเตเดเตเดเดพเตพ เดเตเดฑเดตเต เดตเดฒเตเดคเต เดเดฏ เด เดเดเดฎเดพเดฏเดฟเดฐเดฟเดเตเดเดฃเด.ASC
เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ เดคเตเดฒเตเดฏเดฎเดพเดฃเตUSING <
ะธDESC
เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ เดคเตเดฒเตเดฏเดฎเดพเดฃเตUSING >
.
เดเดเตเดเดณเตเดเต เดเดพเดฐเตเดฏเดคเตเดคเดฟเตฝ, "เดเตเดฑเดตเต" เดเดฃเต ~<~
:
SELECT
*
FROM
firms
WHERE
lower(name) LIKE ('ัะพะทะฐ' || '%')
ORDER BY
lower(name) USING ~<~
LIMIT 10;
2: เด เดญเตเดฏเตผเดคเตเดฅเดจเดเตพ เดเดเตเดเดจเต เดเตเดคเตเดคเดฏเดพเดเตเดจเตเดจเต
เดเดชเตเดชเตเตพ เดเดเตเดเตพ เดเดเตเดเดณเตเดเต เด เดญเตเดฏเตผเดคเตเดฅเดจ เดเดฑเต เดฎเดพเดธเดคเตเดคเตเดเตเดเต เดเดฐเต เดตเตผเดทเดคเตเดคเตเดเตเดเต "เด เดฐเดเตเดเตเด" เดเดชเตเดเตเดทเดฟเดเตเดเตเดจเตเดจเต, เดเตเดเดพเดคเต เดฎเตเดฎเตเดฎเดฑเดฟเดฏเตเดเต เดฎเตเดคเตเดคเด เดฆเตเดจเดเดฆเดฟเดจ "เดชเดฎเตเดชเดฟเดเดเดฟเดจเตเดฑเต" เดธเตเดเดเดเตเดเตพเดเตเดเตเดชเตเดชเด เด เดคเต เดตเตเดฃเตเดเตเด "เดฎเตเดเดณเดฟเตฝ" เดเดฃเตเดเตเดคเตเดคเตเดจเตเดจเดคเดฟเตฝ เดเดเตเดเตพ เดเดถเตเดเดฐเตเดฏเดชเตเดชเตเดเตเดจเตเดจเต (เดฌเดซเดฑเตเดเตพ เดชเดเตเดเดฟเดเตเด เดนเดฟเดฑเตเดฑเต) เตฝ 5.5TB - เด เดคเดพเดฏเดคเต, เดฏเดฅเดพเตผเดคเตเดฅเดคเตเดคเดฟเตฝ เดเดฃเตเดเดพเดฏเดฟเดฐเตเดจเตเดจเดคเดฟเดจเตเดเตเดเดพเตพ เดเตเดเตเดคเตฝ.
เดเดฒเตเดฒ, เดคเตเตผเดเตเดเดฏเดพเดฏเตเด, เดเดเตเดเดณเตเดเต เดฌเดฟเดธเดฟเดจเดธเตเดธเต เดตเดณเตผเดจเตเดจเต, เดเดเตเดเดณเตเดเต เดเตเดฒเดฟเดญเดพเดฐเด เดตเตผเดฆเตเดงเดฟเดเตเดเต, เดชเดเตเดทเต เด เดคเต เด เดณเดตเดฟเตฝ เด เดฒเตเดฒ! เดเดคเดฟเดจเตผเดคเตเดฅเด เดเดตเดฟเดเต เดเดจเตเดคเต เดฎเดคเตเดธเตเดฏเด เดเดฃเตเดเตเดจเตเดจเดพเดฃเต - เดจเดฎเตเดเตเดเต เด เดคเต เดเดฃเตเดเตเดคเตเดคเดพเด.
2.1: เดชเตเดเดฟเดเดเดฟเดจเตเดฑเต เดเดจเดจเด
เดเดฟเดฒ เดเดเตเดเดเตเดเดณเดฟเตฝ, เดฎเดฑเตเดฑเตเดฐเต เดกเตเดตเดฒเดชเตโเดฎเตเดจเตเดฑเต เดเตเด, เดฆเตเดฐเตเดค เดธเดฌเตโเดธเตโเดเตเดฐเดฟเดชเตโเดฑเตเดฑเต เดคเดฟเดฐเดฏเดฒเดฟเตฝ เดจเดฟเดจเตเดจเต เดฐเดเดฟเดธเตโเดเตเดฐเดฟเดฏเดฟเดฒเตเดเตเดเต เด เดคเต, เดเดจเตเดจเดพเตฝ เดตเดฟเดชเตเดฒเตเดเดฐเดฟเดเตเด เดซเดฒเดเตเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเต "เดเดพเดเดฟ" เดธเดพเดงเตเดฏเดฎเดพเดเตเดเดพเตป เดเดเตเดฐเดนเดฟเดเตเดเต. เดชเตเดเต เดจเดพเดตเดฟเดเตเดทเตป เดเดฒเตเดฒเดพเดคเตเดค เดเดฐเต เดฐเดเดฟเดธเตเดเตเดฐเดฟ เดเดจเตเดคเดพเดฃเต? เดจเดฎเตเดเตเดเต เด เดคเต เดชเตเดณเดฟเดเตเดเดพเด!
( ... LIMIT <N> + 10)
UNION ALL
( ... LIMIT <N> + 10)
LIMIT 10 OFFSET <N>;
เดกเตเดตเดฒเดชเตเดชเตผเดเตเดเต เดฏเดพเดคเตเดฐเต เดธเดฎเตเดฎเตผเดฆเตเดฆเดตเตเดฎเดฟเดฒเตเดฒเดพเดคเต "เดชเตเดเต-เดฌเต-เดชเตเดเต" เดฒเตเดกเดฟเดเดเต เดเดชเดฏเตเดเดฟเดเตเดเต เดคเดฟเดฐเดฏเตฝ เดซเดฒเดเตเดเดณเตเดเต เดฐเดเดฟเดธเตเดเตเดฐเดฟ เดเดพเดฃเดฟเดเตเดเดพเตป เดเดชเตเดชเตเตพ เดธเดพเดงเดฟเดเตเดเต.
เดคเตเตผเดเตเดเดฏเดพเดฏเตเด, เดตเดพเดธเตเดคเดตเดคเตเดคเดฟเตฝ, เดเดฐเต เดคเตเดเตผเดจเตเดจเตเดณเตเดณ เดกเดพเดฑเตเดฑ เดชเตเดเตเดเตพเดเตเดเตเด เดเตเดเตเดคเตฝ เดเตเดเตเดคเตฝ เดตเดพเดฏเดฟเดเตเดเตเดจเตเดจเต (เดเดฒเตเดฒเดพเด เดฎเตเดฎเตเดชเดคเตเดคเต เดธเดฎเดฏเด เดฎเตเดคเตฝ, เดเดเตเดเตพ เดเดชเตเดเตเดทเดฟเดเตเดเตเด, เดเตเดเดพเดคเต เดเดตเดถเตเดฏเดฎเดพเดฏ โเดตเดพเดฒเตเดโ) - เด เดคเดพเดฏเดคเต, เดเดคเตเดฐเต เดตเตเดฏเดเตเดคเดฎเดพเดฏ เดเดจเตเดฑเดฟเดชเดพเดฑเตเดฑเตเตบ เดเดฃเต. เดเดจเตเดจเดพเตฝ เดเดจเตเดฑเตผเดซเตเดธเดฟเตฝ เดธเดเดญเดฐเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจ เดเตเดฏเดฟเตฝ เดจเดฟเดจเตเดจเต เด เดเตเดคเตเดค เดเดตเตผเดคเตเดคเดจเดคเตเดคเดฟเตฝ เดคเดฟเดฐเดฏเตฝ เดเดฐเดเดญเดฟเดเตเดเตเดจเตเดจเดคเต เดเตเดเตเดคเตฝ เดถเดฐเดฟเดฏเดพเดฏเดฟเดฐเดฟเดเตเดเตเด, เดเดจเตเดจเดพเตฝ เด เดคเดฟเดจเตเดเตเดเตเดฑเดฟเดเตเดเต เดฎเดฑเตเดฑเตเดฐเต เดธเดฎเดฏเด.
2.2: เดเดจเดฟเดเตเดเต เดตเดฟเดเดฟเดคเตเดฐเดฎเดพเดฏ เดเดจเตเดคเตเดเตเดเดฟเดฒเตเด เดตเตเดฃเด
เดเดฟเดฒ เดเดเตเดเดเตเดเดณเดฟเตฝ เดกเตเดตเดฒเดชเตเดชเตผ เดเดเตเดฐเดนเดฟเดเตเดเต เดคเดคเตเดซเดฒเดฎเดพเดฏเตเดฃเตเดเดพเดเตเดจเตเดจ เดธเดพเดฎเตเดชเดฟเตพ เดกเดพเดฑเตเดฑ เดเดชเดฏเตเดเดฟเดเตเดเต เดตเตเดตเดฟเดงเตเดฏเดตเตฝเดเตเดเดฐเดฟเดเตเดเตเด เดฎเดฑเตเดฑเตเดฐเต เดชเดเตเดเดฟเดเดฏเดฟเตฝ เดจเดฟเดจเตเดจเต, เดฎเตเดฎเตเดชเดคเตเดคเต เดฎเตเดดเตเดตเตป เด เดญเตเดฏเตผเดคเตเดฅเดจเดฏเตเด CTE-เดฒเตเดเตเดเต เด เดฏเดเตเดเต:
WITH q AS (
...
LIMIT <N> + 10
)
SELECT
*
, (SELECT ...) sub_query -- ะบะฐะบะพะน-ัะพ ะทะฐะฟัะพั ะบ ัะฒัะทะฐะฝะฝะพะน ัะฐะฑะปะธัะต
FROM
q
LIMIT 10 OFFSET <N>;
เด เดเตเดเดจเตเดฏเดพเดฃเตเดเตเดเดฟเดฒเตเด, เดเดคเต เดฎเตเดถเดฎเดฒเตเดฒ, เดเดพเดฐเดฃเด เดฎเดเดเตเดเดฟเดฏ 10 เดฑเตเดเตเดเตเตผเดกเตเดเตพเดเตเดเดพเดฏเดฟ เดฎเดพเดคเตเดฐเดฎเดพเดฃเต เดธเดฌเตเดเตเดตเดฑเดฟ เดตเดฟเดฒเดฏเดฟเดฐเตเดคเตเดคเตเดจเตเดจเดคเต, เดเดฒเตเดฒเตเดเตเดเดฟเตฝ ...
2.3: เดตเตเดฏเดคเดฟเดฐเดฟเดเตเดคเดค เด เตผเดคเตเดฅเดถเตเดจเตเดฏเดตเตเด เดเดฐเตเดฃเดฏเดฟเดฒเตเดฒเดพเดคเตเดคเดคเตเดฎเดพเดฃเต
2-เดเด เดธเดฌเตเดเตเดตเดฑเดฟเดฏเดฟเตฝ เดจเดฟเดจเตเดจเต เด
เดคเตเดคเดฐเด เดชเดฐเดฟเดฃเดพเดฎ เดชเตเดฐเดเตเดฐเดฟเดฏเดฏเดฟเตฝ เดเดตเดฟเดเตเดฏเต เดจเดทเตเดเดชเตเดชเตเดเตเดเต NOT LIKE
เด
เดตเดธเตเดฅ. เดเดคเดฟเดจเต เดชเดฟเดจเตเดจเดพเดฒเตเดฏเดพเดฃเต เดเดเตเดเดพเดฐเตเดฏเด เดตเตเดฏเดเตเดคเดฎเดพเดฏเดคเต UNION ALL
เดคเดฟเดฐเดฟเดเตเดเตเดตเดฐเดพเตป เดคเตเดเดเตเดเดฟ เดเดฟเดฒ เดเตปเดเตเดฐเดฟเดเตพ เดฐเดฃเตเดเตเดคเดตเดฃ - เดเดฆเตเดฏเด เดตเดฐเดฟเดฏเตเดเต เดคเตเดเดเตเดเดคเตเดคเดฟเตฝ เดเดฃเตเดเตเดคเตเดคเดฟ, เดคเตเดเตผเดจเตเดจเต เดตเตเดฃเตเดเตเด - เด เดตเดฐเดฟเดฏเตเดเต เดเดฆเตเดฏ เดตเดพเดเตเดเดฟเดจเตเดฑเต เดคเตเดเดเตเดเดคเตเดคเดฟเตฝ. เดชเดฐเดฟเดงเดฟเดฏเดฟเตฝ, เดฐเดฃเตเดเดพเดฎเดคเตเดคเต เดธเดฌเตเดเตเดตเดฑเดฟเดฏเตเดเต เดเดฒเตเดฒเดพ เดฑเตเดเตเดเตเตผเดกเตเดเดณเตเด เดเดฆเตเดฏเดคเตเดคเตเดคเดฟเดจเตเดฑเต เดฑเตเดเตเดเตเตผเดกเตเดเดณเตเดฎเดพเดฏเดฟ เดชเตเดฐเตเดคเตเดคเดชเตเดชเตเดเดพเด.
เดเดพเดฐเดฃเด เด เดจเตเดตเตเดทเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต เดชเดเดฐเด เดเดฐเต เดกเตเดตเดฒเดชเตเดชเตผ เดเดจเตเดคเดพเดฃเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเต?.. เดเตเดฆเตเดฏเดฎเดฟเดฒเตเดฒ!
- เดเดฐเดเตเดเดฟ เดตเดฒเดฟเดชเตเดชเด เดฏเดฅเดพเตผเดคเตเดฅ เดธเดพเดฎเตเดชเดฟเดณเตเดเตพ
- DISTINCT เดชเตเดฐเดฏเตเดเดฟเดเตเดเตเดเดเดฐเต เดตเดฐเดฟเดฏเตเดเตเดฏเตเด เดเดฐเตเดฑเตเดฑ เดเดฆเดพเดนเดฐเดฃเดเตเดเตพ เดฎเดพเดคเตเดฐเด เดฒเดญเดฟเดเตเดเดพเตป
WITH q AS (
( ... LIMIT <2 * N> + 10)
UNION ALL
( ... LIMIT <2 * N> + 10)
LIMIT <2 * N> + 10
)
SELECT DISTINCT
*
, (SELECT ...) sub_query
FROM
q
LIMIT 10 OFFSET <N>;
เด เดคเดพเดฏเดคเต, เดซเดฒเด, เด เดตเดธเดพเดจเด, เดเตเดคเตเดฏเดฎเดพเดฏเดฟ เดธเดฎเดพเดจเดฎเดพเดฃเตเดจเตเดจเต เดตเตเดฏเดเตเดคเดฎเดพเดฃเต, เดเดจเตเดจเดพเตฝ 2nd CTE เดธเดฌเตเดเตเดตเดฑเดฟเดฏเดฟเดฒเตเดเตเดเต "เดชเดฑเดเตเดเดพเดจเตเดณเตเดณ" เดธเดพเดงเตเดฏเดค เดตเดณเดฐเต เดเดฏเตผเดจเตเดจเดคเดพเดฃเต, เดเตเดเดพเดคเต เดเดคเต เดเตเดเดพเดคเต, เดตเตเดฏเดเตเดคเดฎเดพเดฏเดฟ เดเตเดเตเดคเตฝ เดตเดพเดฏเดฟเดเตเดเดพเตป เดเดดเดฟเดฏเตเด.
เดเดจเตเดจเดพเตฝ เดเดคเต เดเดฑเตเดฑเดตเตเด เดธเดเตเดเดเดเดฐเดฎเดพเดฏ เดเดพเดฐเตเดฏเดฎเดฒเตเดฒ. เดกเดตเดฒเดชเตเดชเตผ เดคเดฟเดฐเดเตเดเตเดเตเดเตเดเดพเตป เดเดตเดถเตเดฏเดชเตเดชเตเดเตเดเดคเดฟเดจเดพเตฝ DISTINCT
เดจเดฟเตผเดฆเตเดฆเดฟเดทเตเดเดตเดฏเตโเดเตเดเดฒเตเดฒ, เดเดฒเตเดฒเดพ เดซเตเตฝเดกเตเดเตพเดเตเดเตเด เดเดฐเตเดธเดฎเดฏเด เดฑเตเดเตเดเตเตผเดกเตเดเตพ, เดคเตเดเตผเดจเตเดจเต sub_query เดซเตเตฝเดกเต - เดธเดฌเตเดเตเดตเดฑเดฟเดฏเตเดเต เดซเดฒเด - เด
เดตเดฟเดเต เดฏเดพเดจเตเดคเตเดฐเดฟเดเดฎเดพเดฏเดฟ เดเตพเดชเตเดชเตเดเตเดคเตเดคเดฟ. เดเดชเตเดชเตเตพ, เดเดเตเดธเดฟเดเตเดฏเตเดเตเดเต เดเตเดฏเตเดฏเดพเตป DISTINCT
, เดกเดพเดฑเตเดฑเดพเดฌเตเดธเต เดเดคเดฟเดจเดเด เดคเดจเตเดจเต เดเดเตเดธเดฟเดเตเดฏเตเดเตเดเต เดเตเดฏเตเดฏเตเดฃเตเดเดคเตเดฃเตเดเต 10 เดธเดฌเตเดเตเดตเดฑเดฟเดเดณเดฒเตเดฒ, เดเดฒเตเดฒเดพเด <2 * N> + 10!
2.4: เดเดฒเตเดฒเดพเดฑเตเดฑเดฟเดจเตเดฎเตเดชเดฐเดฟเดฏเดพเดฏเดฟ เดธเดนเดเดฐเดฃเด!
เด เดคเดฟเดจเดพเตฝ, เดกเดตเดฒเดชเตเดชเตผเดฎเดพเตผ เดเตเดตเดฟเดเตเดเต - เด เดตเตผ เดตเดฟเดทเดฎเดฟเดเตเดเดฟเดฒเตเดฒ, เดเดพเดฐเดฃเด เดเดฐเต เดคเตเดเตผเดจเตเดจเตเดณเตเดณ โเดชเตเดเตเดโ เดธเตเดตเตเดเดฐเดฟเดเตเดเตเดจเตเดจเดคเดฟเดฒเต เดตเดฟเดเตเดเตเดฎเดพเดฑเดพเดคเตเดค เดฎเดจเตเดฆเดคเดฏเตเดเต, เดชเตเดฐเดงเดพเดจเดชเตเดชเตเดเตเด N เดฎเตเดฒเตเดฏเดเตเดเดณเดฟเดฒเตเดเตเดเต เดฐเดเดฟเดธเตเดเตเดฐเดฟ โเดเตเดฐเดฎเตเดเดฐเดฟเดเตเดเดพเตปโ เดเดชเดฏเตเดเตเดคเดพเดตเดฟเดจเต เดฎเดคเดฟเดฏเดพเดฏ เดเตเดทเดฎ เดเดฒเตเดฒเดพเดฏเดฟเดฐเตเดจเตเดจเต.
เดฎเดฑเตเดฑเตเดฐเต เดกเดฟเดชเตเดชเดพเตผเดเตเดเตเดฎเตเดจเตเดฑเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดกเดตเดฒเดชเตเดชเตผเดฎเดพเตผ เด เดตเดฐเตเดเต เด เดเตเดคเตเดคเต เดตเดจเตเดจเต เด เดคเตเดคเดฐเดฎเตเดฐเต เดธเตเดเดฐเตเดฏเดชเตเดฐเดฆเดฎเดพเดฏ เดฐเตเดคเดฟ เดเดชเดฏเตเดเดฟเดเตเดเดพเตป เดเดเตเดฐเดนเดฟเดเตเดเตเดจเตเดจเดคเตเดตเดฐเต เดเดตเตผเดคเตเดคเดจ เดคเดฟเดฐเดฏเดฒเดฟเดจเดพเดฏเดฟ - เด เดคเดพเดฏเดคเต, เดเดเตเดเตพ เดเดฟเดฒ เดธเดพเดฎเตเดชเดฟเดณเดฟเตฝ เดจเดฟเดจเตเดจเต เดเดฐเต เดเดทเดฃเด เดเดเตเดเตเดเตเดจเตเดจเต, เด เดงเดฟเด เดตเตเดฏเดตเดธเตเดฅเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเต เด เดคเต เดซเดฟเตฝเดเตเดเตผ เดเตเดฏเตเดฏเตเดจเตเดจเต, เดซเดฒเด เดตเดฐเดฏเตเดเตเดเตเดจเตเดจเต, เดคเตเดเตผเดจเตเดจเต เด เดเตเดคเตเดค เดเดทเดฃเด (เดเดเตเดเดณเตเดเต เดเดพเดฐเตเดฏเดคเตเดคเดฟเตฝ เดเดคเต N เดตเตผเดฆเตเดงเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเดคเดฟเดฒเตเดเต เดจเตเดเดพเด), เด เดเตเดเดจเต เดเดเตเดเตพ เดธเตโเดเตเดฐเตเตป เดชเตเดฐเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเดคเตเดตเดฐเต.
เดชเตเดคเตเดตเต, เดชเดฟเดเดฟเดเตเดเดชเตเดชเตเดเตเด เดฎเดพเดคเตเดเดฏเดฟเตฝ N เดเดคเดพเดฃเตเดเต 17K เดฎเตเดฒเตเดฏเดเตเดเดณเดฟเตฝ เดเดคเตเดคเดฟ, เดเดฐเต เดฆเดฟเดตเดธเดคเตเดคเดฟเดจเตเดณเตเดณเดฟเตฝ เด เดคเตเดคเดฐเด เด เดญเตเดฏเตผเดคเตเดฅเดจเดเดณเดฟเตฝ 4K เดเดเตเดเดฟเดฒเตเด "เดเดเตเดเดฒเดฏเดฟเตฝ" เดจเดเดชเตเดชเดฟเดฒเดพเดเตเดเดฟ. เด เดตเดฏเดฟเตฝ เด เดตเดธเดพเดจเดคเตเดคเตเดคเต เดงเตเดฐเตเดฏเดคเตเดคเตเดเต เดธเตเดเดพเตป เดเตเดฏเตเดคเต เดเดฐเต เดเดตเตผเดคเตเดคเดจเดคเตเดคเดฟเดจเตเด 1GB เดฎเตเดฎเตเดฎเดฑเดฟเดชเดเตเดเต โฌ |
เดเดเต
เด
เดตเดฒเดเดฌเด: www.habr.com