• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > PostgreSQL的区域设置

PostgreSQL的区域设置

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了postgresql,postgresql教程,postgresql下载,postgresql官网,postgresql安装等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

PostgreSQL的区域设置


PostgreSQL的区域设置

对于中文用户,在PostgreSQL中应该将编码无条件的设为UTF8,为简化和统一区域(loacle)也推荐尽量设置为C,但Collate和Ctype对性能或功能有一定影响,需要注意。

环境

  • rhel 6.3 x64虚机(4C/8G/300G HDD)
  • PostgreSQL 9.6.2

数据库

en_US=# \l+                                                                   List of databases   Name    |  Owner   | Encoding |  Collate   |   Ctype    |   Access privileges   |  Size   | Tablespace |                Description                 -----------+----------+----------+------------+------------+-----------------------+---------+------------+-------------------------------------------- en_US     | postgres | UTF8     | en_US.UTF8 | en_US.UTF8 |                       | 7343 kB | pg_default |  postgres  | postgres | UTF8     | C          | C          |                       | 414 MB  | pg_default | default administrative connection database template0 | postgres | UTF8     | C          | C          | =c/postgres          +| 7225 kB | pg_default | unmodifiable empty database           |          |          |            |            | postgres=CTc/postgres |         |            |  template1 | postgres | UTF8     | C          | C          | =c/postgres          +| 7225 kB | pg_default | default template for new databases           |          |          |            |            | postgres=CTc/postgres |         |            |  zh_CN     | postgres | UTF8     | zh_CN.UTF8 | zh_CN.UTF8 |                       | 7225 kB | pg_default | (5 rows) 

Collate对功能的影响

Collate会影响中文的排序,在zh_CN的区域下中文按拼音排序,其它区域按字符编码排序。

postgres=# select * from (values ('王'),('貂'),('西'),('杨')) a order by a; column1 --------- 杨 王 西 貂(4 rows)postgres=# \c en_USYou are now connected to database "en_US" as user "postgres".en_US=# select * from (values ('王'),('貂'),('西'),('杨')) a order by a; column1 --------- 杨 王 西 貂(4 rows)en_US=# \c zh_CNYou are now connected to database "zh_CN" as user "postgres".zh_CN=# select * from (values ('王'),('貂'),('西'),('杨')) a order by a; column1 --------- 貂 王 西 杨(4 rows) 

Collate对性能的影响

测试方法

postgres=# create table tb1(c1 text);CREATE TABLETime: 5.653 mspostgres=# insert into tb1 select md5(generate_series(1,1000000)::text);INSERT 0 1000000Time: 2671.929 mspostgres=# vacuum ANALYZE tb1;VACUUMTime: 398.817 mspostgres=# select * from tb1 order by c1 limit 1;                c1                ---------------------------------- 0000104cd168386a335ba6bf6e32219d(1 row)Time: 176.779 mspostgres=# create index idx1 on tb1(c1);CREATE INDEXTime: 1549.436 ms 

测试结果

Collate/Ctype       C       en_US.UTF8  zh_CN.UTF8insert              2671    2613        2670vacuum ANALYZE      398     250         396order by            176     388         401create index        1549    7492        7904insert(with index)  11199   15621       16128 

Ctype的影响

Ctype会影响pg_trgm和部分正则匹配的结果,比如Ctype为'C'时,pg_trgm将无法支持中文

postgres=# select show_trgm('aaabbbc到的x');                      show_trgm                      ----------------------------------------------------- {"  a","  x"," aa"," x ",aaa,aab,abb,bbb,bbc,"bc "}(1 row)en_US=# select show_trgm('aaabbbc到的x');                               show_trgm                               ----------------------------------------------------------------------- {"  a"," aa",0x27bdf1,0x30bd19,0x4624bc,aaa,aab,abb,bbb,bbc,0x6a2ad5}(1 row)zh_CN=# select show_trgm('aaabbbc到的x');                               show_trgm                               ----------------------------------------------------------------------- {"  a"," aa",0x27bdf1,0x30bd19,0x4624bc,aaa,aab,abb,bbb,bbc,0x6a2ad5}(1 row) 

结论

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • PostgreSQL的区域设置
  • Postgresql通过td_fdw连接查询 MS SQL Serever 2008 表
  • Postgresql通过fdw_JDBC连接查询DB2\Oracle表
  • PostgreSql数据库的神器 FDW
  • pgpool的健康检查和failover代码
  • 基于PGPool的1主2从PostgreSQL流复制HA的搭建
  • PostgreSQL空值null参与运算的处理方法

相关文章

  • 2017-05-26location of the android sdk has not been setup in the preferences,androidpreferences
  • 2017-05-26手机安全卫士——高级工具-电话归属地查询,安全卫士归属地查询
  • 2017-05-26安卓图片加载之使用universalimageloader加载圆形圆角图片
  • 2017-05-26Android SwipeRefreshLayout下拉刷新与上拉加载+滑动删除
  • 2017-05-26弧形菜单(Android),弧形菜单android
  • 2017-05-26Android中接收系统广播消息
  • 2017-05-26我的android学习经历8,android学习经历8
  • 2017-05-26Android自定义控件系列案例【四】
  • 2017-05-26Android开发学习——搭建开发环境,android搭建
  • 2017-05-26Android开源项目分类汇总(六)工具库

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • json反序列化把空字符串转为null
    • 开启新的activity获取它的返回值,activity获取返回值
    • Ubuntu Android Studio 无法通过起动器开启,android起动器
    • 仿Android印象笔记底部导航栏
    • PHP的readfile下载大文件时卡住
    • 如何解决Linux系统中的Navicat for MySQL 1045错误
    • StringBuffer工具类整理(一),stringbuffer工具类
    • Android中BroadcastReceiver组件详解
    • Linux内核系列—C语言中内嵌汇编 asm __volatile__,asm__volatile_
    • Android触摸事件(三)-触摸事件类使用实例

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有