随笔分类 - PostgreSQL
摘要:备份 PG 数据库生成的文件可以有两种,一种是 SQL 文件,一种是二进制文件,二进制文件只能使用 pg_restore 进行恢复。 PostgreSQL 数据库操作简要说明 PostgreSQL数据库版本 psql --versionpsql (PostgreSQL) 9.1.3 下面是在linu
阅读全文
摘要:面对数据量动辄成千上万的数据库,如何保证其稳定运行呢? 其中一个方法就是给数据库减负。 以下列举了 7 个为数据库减负的技巧: 1. 缓存 我们可以将数据直接缓存到内存中。例如 Map,也可以使用缓存框架,将一些需要频繁使用的热点数据保存在缓存中,每当用户来访问时,就可以直接将缓存中的数据返回给用户
阅读全文
摘要:查看当前连接的用户名: 或 查看所有用户名: foo=#\du 用户管理可以查看之前的博文: https://www.cnblogs.com/ryanzheng/p/9427126.html 查看所有用户名: 用户管理可以查看之前的博文: https://www.cnblogs.com/ryanzh
阅读全文
摘要:使用 psql 在 mac os 系统上登录,系统显示没有 psql 这个命令存在 解决方法如下: 将 postgresql 的 bin 目录添加到环境变量中即可 参考链接: https://stackoverflow.com/questions/20928734/how-to-put-psql-o
阅读全文
摘要:有时候需要设置定时任务直接执行 sql 语句,但是 postgresql 默认需要人工输入密码,以下命令可以直接在命令行中直接填入密码 参考链接: https://stackoverflow.com/questions/6405127/how-do-i-specify-a-password-to-p
阅读全文
摘要:错误重现 有时候需要删除某个数据库时,会报如下错误,显示有一个连接正在使用数据库,无法删除 解决方法 首先阻止其他人连接到准备要删除的数据库 然后中止连到此数据库的所有连接 在旧版本上,pid被称为procpid,所以你必须处理它 接下来执行 drop database databases_name
阅读全文
摘要:查看某个表的索引使用情况 查看所有表的索引的使用情况 存放索引详细信息的表 pg_stat_user_indexs 表的详细解释参考官方文档: https://www.postgresql.org/docs/9.2/monitoring-stats.html
阅读全文
摘要:在刚安装完的 PostgreSQL 中,通常只需要像下面这样配置日志,并保持其他默认值,就基本可以满足用户大多数需求: 完成以上设置后,7天后会有7个日志文件,分别为周一到周日,日志文件会不断的覆盖前一个星期,可以记录到执行的所有sql语句
阅读全文
摘要:对于任何数据库软件,内存配置项都是很重要的配置项。在 PostgreSQL 主要有以下几个内存配置参数。 shared_buffers: integer 类型,设置数据库服务器将使用的共享内存缓冲区数量,此缓冲区为缓冲数据块所用。此缓冲区是放在共享内存中的。每个缓冲区大小的典型值是 8K 字节,默认
阅读全文
摘要:什么是触发器 触发器是一种由事件自动触发执行的特殊存储过程,这些事件可以是对一个表进行 INSERT、UPDATE、DELETE 等操作。 触发器经常用于加强数据的完整性约束和业务规则上的约束等。 查看触发器 创建触发器 创建触发器的语法如下: 创建触发器的步骤: 先为触发器建一个执行函数,此函数的
阅读全文
摘要:PHP 程序无法连接到 CentOS 上的PostgreSQL,但是在 CentOS 服务器上却能正常运行 psql, 操作如下:多次重启 PG 数据库后发现 CGI 脚本无法连接数据库,但是可以使用 psql 连接上数据库 PHP 程序报错如下: 网上查了很多文章,发现是SELinux(Linux
阅读全文
摘要:经常重建索引 有时候我们值得用 REINDEX 命令周期性重建索引。 在 PostgreSQL 版本 7.4 之前,我们经常有必要避免"索引膨胀",因为缺乏在 B-tree 索引内部的空间恢复机制。 一个情况就是索引健字的范围随着时间而变化。 比如,一个在时间戳上的索引随着时间的推移,旧的记录会最终
阅读全文
摘要:在查询生成输出表之后,也就是在处理完选择列表之后,你还可以对输出表进行排序。 如果没有排序,那么行将以不可预测的顺序返回(实际顺序将取决于扫描和连接规划类型和在磁盘上的顺序, 但是肯定不能依赖这些东西)。确定的顺序只能在明确地使用了排序步骤之后才能保证。 ORDER BY子句用于声明排序顺序: so
阅读全文
摘要:pg_dump -U username databasename -W -s -t tablename -s, --schema-only 只转储模式, 不包括数据 -t, --table=TABLE 只转储指定名称的表 还原: createdb newDBname psql -d newDBname -U postgres -f dump...
阅读全文
摘要:连接是通过创建 PDO 基类的实例而建立的。不管使用哪种驱动程序,都是用 PDO 类名。 构造函数接收用于指定数据库源(所谓的 DSN)以及可能还包括用户名和密码(如果有的话)的参数。 连接到 MySQL 如果有任何连接错误,将抛出一个 PDOException 异常对象。如果想处理错误状态,可以捕
阅读全文
摘要:INSERT INTO SELECT 可以将 select 的结果集同时插入到另一个指定的表中,大大提高了效率,如下:
阅读全文
摘要:存放索引详细信息的表 通过这个表查看某个表的索引使用情况易如反掌了。 示例一、查看所有表的索引的使用情况 示例二、查看某个表的索引使用情况
阅读全文
摘要:什么是 PyMySQL? PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb。 PyMySQL 遵循 Python 数据库 API v2.0 规范,并包含了 pure-Python MySQL 客户端库。 在使用 PyMySQL
阅读全文
摘要:我使用的是 Python 3.7.0 PostgreSQL可以使用psycopg2模块与Python集成。 sycopg2是用于Python编程语言的PostgreSQL数据库适配器。 psycopg2是非常小,快速,稳定的。 您不需要单独安装此模块,因为默认情况下它会随着Python 2.5.x版
阅读全文
摘要:SQL 命令一般分为 DQL、DML、DDL DQL:数据查询语句,基本就是 SELECT 查询命令,用于数据查询 DML:Data Manipulation Language 的简称,即数据操纵语言,主要用于插入、更新、删除数据,所以也分为 INSERT、UPDATE、DELETE 三种语句。
阅读全文