Nodejs:postgresql随机插入十万条数据测试

CPU:cpu family : 6
model : 42

model name : Intel(R) Core(TM) i5-2450M CPU @ 2.50GHz

系统信息:Linux sec 3.5.0-45-generic #68~precise1-Ubuntu SMP Wed Dec 4 16:18:46 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

node postgresql package:https://github.com/brianc/node-postgres

db/index.js部分:


var pg = require('pg');
var conString = "postgres://test:test@localhost/pgs";
exports.pg_exec = function(prepared_obj,cb){
    pg.connect(conString, function(err, client, done) {
        if(err) {
            cb(err,{"rowCount":0})
            return;
        }
        client.query(prepared_obj, function(err, result) {
            done();
            cb(err,result);
        });
    });
}



index.js部分 

/**
 * Created by ty4z2008 on 14-1-19.
 */
var pg_exec = require("./db").pg_exec;
(function(){
    console.log('start pg_insert');
    var rand_ship = new Array('韵达','EMS','顺丰','圆通','申通','韵达','UPS','中通','平邮'),
        rand_alp=new Array('A','B','C','D','E','F','G','H','I','J','K','L','M','N','P',
            'Q','R','S','T','U','V','W','X','Y','Z','a','b','c','d','e','f','g','h','i',
            'j','k','m','n','p','Q','r','s','t','u','v','w','x','y','z', '2','3','4','5',
            '6','7','8','9'),
        rand_number=new Array(1,2,3,4,5,6,7,8,9,0),
        rand_add=new Array('支付宝','网银','货到付款','财付通','微信支付','其他'),
        rand_gender=new Array('男','女'),
        rand_state=new Array('交易成功','交易失败','发货中','交易取消','运输中');

        var rand_ship_length=rand_ship.length,
            rand_alp_length=rand_alp.length,
            rand_number_length=rand_number.length,
            rand_add_length=rand_add.length,
            rand_state_length=rand_state.length,
            rand_gender_length=rand_gender.length;
    for(var i = 0; i < 50000; i++) {
        var n=Math.floor(Math.random()*rand_number_length),
            a=Math.floor(Math.random()*rand_alp_length),
            e=Math.floor(Math.random()*rand_add_length),
            s=Math.floor(Math.random()*rand_ship_length),
            st=Math.floor(Math.random()*rand_state_length),
            g=Math.floor(Math.random()*rand_gender_length),
            price=Math.floor(Math.random()*100);
        total_price=i+rand_number[n]+i;
        count=rand_number[n]+rand_number[n]+2;
        czipcode = i+rand_number[n] + i;
        gender=rand_gender[g];
        shipping=rand_ship[s];
        payment=rand_add[e];
        consignee="consignee"+rand_alp[a]+i;
        caddr=rand_alp[a]+'caddr'+i;
        cphone='1'+i+rand_number[n];
        cmessage="cmessage"+rand_alp[a]+i;
        ostate=rand_state[st];
        pg_exec({
                name:"insert",
                text:" INSERT INTO " +
                    "orderinfo(total_price,price,count, otime, shipping, payment," +
                    " consignee,gender, caddr, czipcode, cphone, cmessage, ostate)" +
                    "VALUES($1, $2,$3, current_timestamp(2), $4, $5, $6, $7,$8,$9,$10,$11,$12)",
                values:[total_price,price,count, shipping, payment,
                    consignee,gender, caddr, czipcode, cphone, cmessage, ostate]},
            function(err){
                if(err){
                    console.log(err);
                    return;
                }
        });
    };
})();




sql部分:
CREATE TYPE sex_enum AS ENUM('男', '女');


-- Table: orderinfo

-- DROP TABLE orderinfo;

CREATE TABLE orderinfo
(
  order_id serial NOT NULL,
  user_id serial NOT NULL,
  price character varying(10), -- 单价
  count character varying(10), -- 数量
  total_price numeric(9,2), -- 总价
  otime timestamp without time zone, -- 订单时间
  shipping character varying(20), -- 送货方式
  payment character varying(20), -- 支付方式
  consignee character varying(20), -- 收货人
  gender sex_enum, -- 性别-gender
  caddr character varying(100),
  czipcode character varying(10), -- 邮编
  cphone character varying(12), -- 联系号码
  cmessage character varying(100),
  ostate character varying(20), -- 状态
  CONSTRAINT orderinfo_pkey PRIMARY KEY (order_id),
  CONSTRAINT orderinfo_user_id_fkey FOREIGN KEY (user_id)
      REFERENCES users (user_id) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE NO ACTION
)
WITH (
  OIDS=FALSE
);
ALTER TABLE orderinfo
  OWNER TO z71;
COMMENT ON COLUMN orderinfo.price IS '单价';
COMMENT ON COLUMN orderinfo.count IS '数量';
COMMENT ON COLUMN orderinfo.total_price IS ' 总价
';
COMMENT ON COLUMN orderinfo.otime IS '订单时间';
COMMENT ON COLUMN orderinfo.shipping IS '送货方式
';
COMMENT ON COLUMN orderinfo.payment IS '支付方式
';
COMMENT ON COLUMN orderinfo.consignee IS '收货人
';
COMMENT ON COLUMN orderinfo.gender IS '性别-gender
';
COMMENT ON COLUMN orderinfo.czipcode IS '邮编';
COMMENT ON COLUMN orderinfo.cphone IS '联系号码';
COMMENT ON COLUMN orderinfo.ostate IS '状态';




完成执行时间大概花了1分钟左右


转载于:https://my.oschina.net/websec/blog/194568

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值