• PostgreSQL增删数据命令示例


    在PostgreSQL中如何用简单的几条SQL语句生成大量的测试数据呢?
    此处,我简单的写一个例子,供参考(在Postgresql9.1下面做的):
    (1)生成一万条测试数据的表foo
    mydb=# create table foo(id bigint);
    mydb=# insert into foo select * from generate_series(1,10000);
    mydb=# select count(*) from foo;

    当然如果您想知道执行该sql的时间,请在执行上述命令前设置:
    mydb=# iming on
    Timing is on.

    最后说明一点的是,我的换了慢速的CPU的笔记本T61,插入一千万条记录要一分多钟 ,faint:
    mydb=# insert into foo select * from generate_series(1,10000000);
    INSERT 0 10000000
    Time: 88694.944 ms
    主要参考:
    [1]PostgreSQL 之 生成测试数据,http://hi.baidu.com/hjzheng/blog/item/c78ad09320eb5297a877a4f6.html,
    [2]http://www.depesz.com/2010/02/02/waiting-for-9-0-table-and-index-sizes/

    (2)查看表foo占用的存储空间
    mydb=# select pg_table_size('foo');
     pg_table_size 
    ---------------
            401408
    (1 row)
    若查看其中的index的空间或整个relation的空间,请参考:http://www.postgresql.org/docs/9.1/static/functions-admin.html ,或:http://www.postgresql.org/docs/9.1/static/functions-admin.html。

    (3)查看整个mydb数据库占用的硬盘空间:
    mydb=# SELECT oid from pg_database where datname='mydb';
      oid  
    -------
     16384
    (1 row)
    [postgres@localhost ~]cd/home/postgres/db/master/pgsql/data/base/16384pgsqldata[postgres@localhost16384]du -sh
    6.3M    
    (4)如果想用delete清空该表,然后真正清空硬盘空间
    mydb=# delete from foo;
    DELETE 10000
    然后在命令行:
    [postgres@localhost ~]$ /home/postgres/db/master/pgsql/bin/vacuumdb mydb
    然后再用第3步中的看看,是不是又减少到最初的几兆(我的大约是6M)空间了。

  • 相关阅读:
    一、NHibernate 使用配置与实现简单查询
    NHibernate学习步骤
    sql2008转成2005的解决办法
    二、使用NHibernate对数据库实现增、删、改、查操作
    FusionCharts 点击事件 新页面
    [分享]NHibernate视频教程
    FusionCharts Free使用文档教程第五章FusionCharts Free使用dataXML加载数据
    职业规划
    网页生成pdf文件
    FusionCharts Free使用文档教程第四章FusionCharts Free使用JavaScript加载图形
  • 原文地址:https://www.cnblogs.com/xiaodf/p/5027190.html
Copyright © 2020-2023  润新知