前言
postgresql支持?jǐn)?shù)組類型,可以是基本類型,也可以是用戶自定義的類型。日常中使用數(shù)組類型的機(jī)會(huì)不多,但還是可以了解一下。不像C或JAVA高級(jí)語(yǔ)言的數(shù)組下標(biāo)從0開始,postgresql數(shù)組下標(biāo)從1開始,既可以指定長(zhǎng)度,也可以不指定長(zhǎng)度。且postgresql既支持一維數(shù)組,也支持多維數(shù)組,但是平時(shí)二維數(shù)組也就夠用了。
本文將給大家介紹PostgreSQL通過數(shù)組改進(jìn)性能的相關(guān)內(nèi)容,分享出來供大家參考學(xué)習(xí),下面話不多說了,來一起看看詳細(xì)的介紹吧
PostgreSQL通過數(shù)組改進(jìn)性能
創(chuàng)建一個(gè)用戶和設(shè)備關(guān)系映射表,用戶的設(shè)備ID存放在數(shù)組字段里面:
CREATE TABLE device.user_devices
(
user_id character varying(32) COLLATE pg_catalog."default" NOT NULL,
device_ids character varying[] COLLATE pg_catalog."default" NOT NULL,
CONSTRAINT user_devices_pkey PRIMARY KEY (user_id)
)
將數(shù)據(jù)導(dǎo)入表:
insert into device.user_devices
select device_owner, array_agg(device_id)
from device.device_info
where device_owner is not null
and device_owner != ''
group by device_owner
比較原查詢方式和新查詢方式的性能:
原查詢方式:
新查詢方式:
可以發(fā)現(xiàn)新查詢方式的性能有了巨大的提升!
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
您可能感興趣的文章:- PostgreSQL 對(duì)數(shù)組的遍歷操作
- Mybatis調(diào)用PostgreSQL存儲(chǔ)過程實(shí)現(xiàn)數(shù)組入?yún)鬟f
- 在PostgreSQL中使用數(shù)組時(shí)值得注意的一些地方
- postgresql 實(shí)現(xiàn)將數(shù)組變?yōu)樾?/li>