GVKun编程网logo

在PostgreSQL中找到一行的字节大小

11

本文将介绍在PostgreSQL中找到一行的字节大小的详细情况,。我们将通过案例分析、数据研究等多种方式,帮助您更全面地了解这个主题,同时也将涉及一些关于centos7下源码编译安装php支持Post

本文将介绍在PostgreSQL中找到一行的字节大小的详细情况,。我们将通过案例分析、数据研究等多种方式,帮助您更全面地了解这个主题,同时也将涉及一些关于centos 7下源码编译安装php支持PostgreSQL postgresql手册 postgresql官网下载 postgresql视频教、php – Laravel – [PDOException]:无法在PostgreSQL中找到驱动程序 – MAC OS、postgresql – pg_restore到在docker容器中运行的postgres、postgresql – 可以在Postgres中存储1个字节的数字吗?的知识。

本文目录一览:

在PostgreSQL中找到一行的字节大小

在PostgreSQL中找到一行的字节大小

假设我在PostgreSQL中有一个表,如何找到系统使用的确切字节大小以保存表的特定行?

例如,假设我有一个带有VARCHAR(1000000)字段的表,并且某些行包含用于该字段的很大的字符串,而另一些则很小。在这种情况下,如何检查行的字节大小?(即使在使用TOAST的情况下,也包括字节大小)。

centos 7下源码编译安装php支持PostgreSQL postgresql手册 postgresql官网下载 postgresql视频教

centos 7下源码编译安装php支持PostgreSQL postgresql手册 postgresql官网下载 postgresql视频教

1. 下载源码

$ mkdir /usr/downloads
$ wget -c http://cn2.php.net/distributions/php-5.6.20.tar.gz
$ tar -xvf php-5.6.20.tar.gz
$ mv php-5.6.20 /usr/local/src
$ cd !$ & cd php-5.6.20
登录后复制

2. 阅读安装指导

$ ls -also
$ less README
$ less INSTALL
登录后复制

3. 安装依赖包

$ yum install apr apr-util apr-devel apr-util-devel prce lynx
登录后复制

4. 安装httpd

$ wget -c http://apache.fayea.com//httpd/httpd-2.4.20.tar.gz
$ tar -xvf httpd-2.4.20.tar.gz
$ cd httpd-2.4.20
$ ./configure \
--prefix=/usr/local/programs/apache2 \
--enable-rewrite \
--enable-so \
--enable-headers \
--enable-expires \
--with-mpm=worker \
--enable-modules=most \
--enable-deflate \
--enable-module=shared
$ make
$ make install
$ cd /usr/local/programs/apache2
$ cp bin/apachectl /etc/init.d/httpd ## 复制启动脚本
$ /etc/init.d/httpd start ## 启动apache服务器,访问http://localhost/
$ egrep -v ''^[ ]*#|^$'' /usr/local/apache2/conf/httpd.conf | nl ## 查看apache服务器的配置
## 将apache加入系统服务
vi /etc/rc.d/rc.local
```
/usr/local/programs/apache2/bin/apachectl start
```
$ cat /etc/rc.local
登录后复制

4. 安装postgresql

立即学习“PHP免费学习笔记(深入)”;

$ yum install readline-devel  ## 安装readline依赖
$ cd /usr/downloads
$ wget -c https://ftp.postgresql.org/pub/source/v9.5.0/postgresql-9.5.0.tar.bz2
$ tar -xvf postgresql-9.5.0.tar.bz2
$ cd postgresql-9.5.0
$ ./configure --prefix=/usr/local/programs/postgresql
$ make
$ su
$ make install
$ /sbin/ldconfig /usr/local/programs/postgresql/lib ## 刷新下共享动态库
$ cd /usr/local/programs/postgresql
$ bin/psql --version  ## 检查运行情况
## 开始对postgresql的配置
$ vi /etc/profile.d/postgresql.sh ## 增加环境变量,不推荐直接在/etc/profile中添加,系统更新升级时会需要merge
``` 
PATH=/usr/local/programs/postgresql:$PATH
export PATH
```
$ source /etc/profile ## 更新环境变量

## 增加用户和其他文件夹
$ adduser postgres
$ passwd postgres 
$ mkdir /usr/local/programs/postgresql/logs
$ mkdir /usr/local/programs/postgresql/data
$ chown postgres /usr/local/programs/postgresql/data
$ su - postgres

## 初始化数据库
$ ./bin/initdb -D ./data
$ ./bin/createdb test
$ ./bin/psql test
## 已有数据库,可导入data文件夹后尝试root访问,假如带密码,可能需要进一步研究下
$ ./bin/postgres -D ./data >./logs/start-log-1.log 2>&1 &
$ ./bin/psql --list  ##列出数据库
## ok,安装完成

## 自定义设置,权限控制等,可以跳过,等熟悉使用后再做
## 编辑数据库配置及权限文件:
$ vi /usr/local/programs/postgresql/data/postgresql.conf   ## 数据库配置文件
$ chown postgres postgresql.conf
$ chmod 644 postgresql.conf
$ vi /usr/local/programs/postgresql/data/pg_hba.conf   ## 权限文件
$ vi /usr/local/programs/postgresql/data/pg_ident.conf

## 设置开机自启动:
$ vi /etc/rc.d/rc.local    ## 添加如下内容
```
/usr/local/programs/postgresql/bin/postgresql start
```
登录后复制

5. 安装php

## 源码已经在第一步中下载,现在开始安装:
$ yum install libxml2 libxml2-devel libpng libpng-devel libjpeg libjpeg-devel freetype freetype-devel
$ ./configure \
--prefix=/usr/local/programs/php \
--with-apxs2=/usr/local/programs/apache2/bin/apxs \
--with-zlib \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--with-zlib-dir \
--enable-mbstring \
--with-pgsql=/usr/local/programs/postgresql \
--with-pdo-pgsql=/usr/local/programs/postgresql 
$ make
$ make test
> Bug #42718 (unsafe_raw filter not applied when configured as default filter) [ext/filter/tests/bug42718.phpt]  XFAIL REASON: FILTER_UNSAFE_RAW not applied when configured as default filter, even with flags
> Bug #67296 (filter_input doesn''t validate variables) [ext/filter/tests/bug49184.phpt]  XFAIL REASON: See Bug #49184
> Bug #53640 (XBM images require width to be multiple of 8) [ext/gd/tests/bug53640.phpt]  XFAIL REASON: Padding is not implemented yet
> zend multibyte (7) [ext/mbstring/tests/zend_multibyte-07.phpt]  XFAIL REASON: https://bugs.php.net/bug.php?id=66582
> zend multibyte (9) [ext/mbstring/tests/zend_multibyte-09.phpt]  XFAIL REASON: https://bugs.php.net/bug.php?id=66582
>Bug #70470 (Built-in server truncates headers spanning over TCP packets) [sapi/cli/tests/bug70470.phpt]  XFAIL REASON: bug is not fixed yet

## 查阅官方的bug,发现:
> id=66582: status : Closed. Fixed in master (PHP7)
> id=42718: status : Assigned
> id=42718: reference to id=49184, unsolved for many years
## 那就不关心了,直接装吧
$ make install
> You may want to add: /usr/local/programs/php/lib/php to your php.ini include_path

## 那就按它说的设置吧
$ cp php.ini-development /usr/local/programs/php/lib/php.ini
```
include_path = ".;/usr/local/programs/php/lib/php"

## 然后,编辑httpd的设置,确保其能正确解析php文件
```
...
LoadModule php5_module modules/libphp5.so
...
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .php5

...
<ifmodule dir_module>
    DirectoryIndex index.html index.php
</ifmodule>     
```

## 重启httpd,测试
$ cd /usr/local/programs/apache2
$ bin/httpd -h
$ bin/httpd -k stop
$ bin/httpd -f conf/httpd.conf
## 默认设置的www页面在./htdocs/下,那就先去里面建一个测试页面吧
$ vi htdocs/index.php
```
<?php phpinfo(); ?>
```
$ curl http://localhost/index.php |grep postgresql
#ok
登录后复制

后续应该做的事

* 1. 启动时,不需要要手动指定配置文件
* 2. php初始化www目录设置
* 3. php 用户、权限管理等

'').addClass(''pre-numbering'').hide(); $(this).addClass(''has-numbering'').parent().append($numbering); for (i = 1; i '').text(i)); }; $numbering.fadeIn(1700); }); });

以上就介绍了centos 7下源码编译安装php支持PostgreSQL,包括了postgresql,centos 7方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

php – Laravel – [PDOException]:无法在PostgreSQL中找到驱动程序 – MAC OS

php – Laravel – [PDOException]:无法在PostgreSQL中找到驱动程序 – MAC OS

我在stackoverflow上查看了有关此问题的多篇帖子,但我仍然遇到同样的问题:

PHP.ini文件中列出了以下内容:

extension=PHP_pdo_pgsql.dll

extension=PHP_pgsql.dll

ENV文件:

DB_CONNECTION=pgsql
DB_HOST=127.0.0.1
DB_DATABASE=owe
DB_USERNAME=postgres
DB_PASSWORD=password

我重新启动apache,重新启动计算机,当我进行迁移时,我收到以下错误:

me$PHP artisan migrate
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/PHP/extensions/no-debug-non-zts-20121212/PHP_pdo_pgsql.dll' - dlopen(/usr/lib/PHP/extensions/no-debug-non-zts-20121212/PHP_pdo_pgsql.dll, 9): image not found in UnkNown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/PHP/extensions/no-debug-non-zts-20121212/PHP_pgsql.dll' - dlopen(/usr/lib/PHP/extensions/no-debug-non-zts-20121212/PHP_pgsql.dll, 9): image not found in UnkNown on line 0


[PDOException]         
Could not find driver  

解决方法:

这对我有用:

brew安装PHP55-pdo-pgsql

谢谢,

postgresql – pg_restore到在docker容器中运行的postgres

postgresql – pg_restore到在docker容器中运行的postgres

我有一个数据库的备份,我将恢复到在docker容器内运行的postgres数据库.

我在OS X上使用docker-machine.
Postgres图像是postgres:9.4.

这是我到目前为止提出的脚本:

pg_restore --verbose --clean --no-acl --no-owner \
  -h tcp://`docker-machine ip default`:5432 \
  -U postgres \
  -d tonsser-api_development latest.dump

但这不起作用.我收到错误:

pg_restore: connecting to database for restore
pg_restore: [archiver (db)] connection to database "tonsser-api_development" Failed: Could not translate host name "tcp://192.168.99.100:5432" to address: nodename nor servname provided,or not kNown

解决方法

似乎没有适当的解决方案在运行时执行此操作,但是将dumpfile复制到容器:

docker cp dumpfile DBcontainer:/dumpfile

并从容器内恢复:

docker  exec -i -t DBcontainer /bin/bash
psql dbname < dumpfile

一次性使用效果很好……

postgresql – 可以在Postgres中存储1个字节的数字吗?

postgresql – 可以在Postgres中存储1个字节的数字吗?

我有7个8位整数值,我想要存储在Postgres中. Pg不提供单字节整数类型SMALLINT或2个字节,它是最小的整型数据类型.有没有办法我可以存储我的7 8位数字并节省空间?

具有7元素数组的数组类型是否更紧凑?或者,我应该使用我的7个数字的二进制表示法(例如,在Perl中使用pack)并将其存储在一个bytea字段中?

任何其他建议?

假设Postgresql中任何行的开销为 23 bytes(HeapTupleHeaderData),如果您真的关心少量的空间,那么您可能选择了错误的方式来存储数据.

无论如何,由于所有更复杂的类型都有自己的开销(bytea增加了四个字节的开销,例如位串5到8),完成所需内容的唯一方法是使用bigint(8字节)以数值方式移动每个值并将结果进行OR运算.您可以使用bit string operations使代码更容易 – 以位字符串计算,然后在存储之前转换为bigint – 或者如果要使速度更好,则只需手动乘法/加法.例如,以下是将两个字节一起存储为两个字节的结构,然后再重新得到它们:

int2 = 256 * byte1 + byte2
byte1 = int2 / 256
byte2 = int2 % 256

您可以将相同的想法扩展到存储其中的7个方法.检索开销仍然是可怕的,但您实际上会在此过程中节省一些空间.但是相对于行标题来说不是很多.

我们今天的关于在PostgreSQL中找到一行的字节大小的分享就到这里,谢谢您的阅读,如果想了解更多关于centos 7下源码编译安装php支持PostgreSQL postgresql手册 postgresql官网下载 postgresql视频教、php – Laravel – [PDOException]:无法在PostgreSQL中找到驱动程序 – MAC OS、postgresql – pg_restore到在docker容器中运行的postgres、postgresql – 可以在Postgres中存储1个字节的数字吗?的相关信息,可以在本站进行搜索。

本文标签: