免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: harry_li
打印 上一主题 下一主题

关于连接数据库,插入数据的问题,如何提高效率?请介绍一下经验 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2004-08-13 07:33 |只看该作者

关于连接数据库,插入数据的问题,如何提高效率?请介绍一下经验

呵呵,根据我和某些数据库厂家中国技术支持曾经交互的结果,技术和市场策略还是没什么关系。完全可以买80用户,配200用户连接。关于数据库连接池,FH老兄已经说的很清楚了。

论坛徽章:
0
12 [报告]
发表于 2004-08-13 12:32 |只看该作者

关于连接数据库,插入数据的问题,如何提高效率?请介绍一下经验

postgresql支持这个插入方式的
strcpy(sql,"insert into test values(1);
insert into test values(1);
insert into test values(1);
insert into test values(1);
insert into test values(1);
insert into test values(1);
insert into test values(1);"
可以一次执行多条SQL语句的,碰上这种几千条的记录,在一个事务里面执行效率应该可以高很多的

论坛徽章:
0
13 [报告]
发表于 2004-08-13 12:38 |只看该作者

关于连接数据库,插入数据的问题,如何提高效率?请介绍一下经验

是的.我试过了.我用事务来写入2000多条纪录,比以前快多了.

论坛徽章:
0
14 [报告]
发表于 2004-08-13 15:13 |只看该作者

关于连接数据库,插入数据的问题,如何提高效率?请介绍一下经验

连接池和数据库操作的效率好像没什么关系(在单用户下)
用事务来做不一定会提高效率,事务只用来保证多步数据操作的完整性
并会在操作的同时写入日志文件,单步操作会使用隐藏事务

论坛徽章:
0
15 [报告]
发表于 2004-08-13 17:24 |只看该作者

关于连接数据库,插入数据的问题,如何提高效率?请介绍一下经验

用了fork()还是觉得没有并行插入数据库.看到的明明是子进程执行完再执行父进程的.今天有测试了以下程序,也是没有并行的执行:程序如下:
  pid=fork();
if (pid<0)
{
  printf("fork error\n";
  exit(1);
  }
  if (pid==0)
  {
   //parseDoc (conn,docname);
     int i;
     for(i=0;i<30;i++)
     { printf("%d\n",2*i+1);}

  }
else
  {
    // parseDoc(conn,docname1);
     int j;
    for(j=0;j<30;j++)
    {
       printf("%d\n",2*j);}
   }
  exit(0);

论坛徽章:
0
16 [报告]
发表于 2004-08-13 18:03 |只看该作者

关于连接数据库,插入数据的问题,如何提高效率?请介绍一下经验

如果支持
insert into tbl (ID) values (1, 2, 3, 4, 5, 6......)
更快.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP