PostgreSQL 中字段類型varchar的用法
PostgreSql數(shù)據(jù)庫中varchar類型與sql server中字段用法有差別,PostgreSql中如果字段設(shè)置為varchar類型長度為10,則無論存字母、數(shù)字或其它符號,長度最大為10個,也就是字母和漢字占的位置是一樣的。
Sql server中如設(shè)置字段類型為nvarchar類型長度為10,則存漢字最大為5個,字母為10個,字母加漢字混合時,字母和漢字占的長度一樣
補(bǔ)充:Postgresql 數(shù)據(jù)庫 varchar()字符占用多少字節(jié)
如下所示:
create table tmp1 ( name varchar(3) ); select pg_size_pretty(pg_relation_size('tmp1')); -- 0 bytes insert into tmp(name) values('歐陽子'); -- 8192 bytes 8192 bytes = 8KB = 1頁(數(shù)據(jù)庫的最小單位) 8頁 = 1區(qū) = 64KB(記不清磁頭一次取1區(qū)還是1頁數(shù)據(jù)了)
pg_relation_size()函數(shù)用于查詢表占用空間.
當(dāng)表創(chuàng)建的時候, 是不占空間的, 插入數(shù)據(jù)后, 數(shù)據(jù)庫至少使用1KB去保存數(shù)據(jù), 不夠會繼續(xù)增加.(不包含MateData)
首先postgresql中varchar()保存的是字符.
即可以插入3個中文, 也可以插入三個字母或者數(shù)字.
一般數(shù)據(jù)庫都是UTF-8編碼.
在UTF-8編碼下, 一個中文 3個字節(jié). 字母或者英文 1個字節(jié).
另外
1KB = 1024B = 1024Bytes
1Bytes = 1B = 8bit
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章
Postgresql創(chuàng)建新增、刪除與修改觸發(fā)器的方法
這篇文章主要介紹了Postgresql創(chuàng)建新增、刪除與修改觸發(fā)器的方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-12-12PostgreSQL中實(shí)現(xiàn)數(shù)據(jù)實(shí)時監(jiān)控和預(yù)警的步驟詳解
在 PostgreSQL 中實(shí)現(xiàn)數(shù)據(jù)的實(shí)時監(jiān)控和預(yù)警是確保數(shù)據(jù)庫性能和數(shù)據(jù)完整性的關(guān)鍵任務(wù),以下將詳細(xì)討論如何實(shí)現(xiàn)此目標(biāo),并提供相應(yīng)的解決方案和具體示例,需要的朋友可以參考下2024-07-07Cenots7 離線安裝部署PostgreSQL 的詳細(xì)過程
這篇文章主要介紹了Cenots7 離線安裝部署PostgreSQL 的詳細(xì)過程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-10-10Postgres copy命令導(dǎo)入導(dǎo)出數(shù)據(jù)的操作方法
最近有需要對數(shù)據(jù)進(jìn)行遷移的需求,由于postgres性能的關(guān)系,單表3000W的數(shù)據(jù)量查詢起來有一些慢,需要對大表進(jìn)行切割,拆成若干個子表,涉及到原有數(shù)據(jù)要遷移到子表的需求,這篇文章主要介紹了Postgres copy命令導(dǎo)入導(dǎo)出數(shù)據(jù)的操作方法,需要的朋友可以參考下2024-08-08