如何编译?
gcc -Wall -o a.out $(mysql_config --cflags) mysql_insert.c $(mysql_config --libs)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/time.h>
#include <unistd.h>
#include <mysql/mysql.h>
#include<sys/types.h>
#include<sys/wait.h>
#define DB_HOST "127.0.0.1"
#define DB_USER "root"
#define DB_PASS ""
#define DB_NAME "test"
#define DB_PORT 3307
int main(int argc, char **argv)
{
MYSQL mysql;
unsigned int i;
int rtn; /*子进程的返回数值*/
unsigned int process_no;
unsigned int userId;
unsigned int type;
unsigned int itemCate;
unsigned int itemType;
unsigned int itemNum;
unsigned int totalCost;
unsigned int consumeTime;
unsigned int leftBalance;
char itemName[1000] ;
char sql[20000] ;
struct timeval time_start,time_end;
float execute_time;
//srand(time(0));
for(process_no = 1; process_no < 18; process_no++)
{
if(fork() == 0)
{
// 开始执行时间
gettimeofday(&time_start,NULL);
mysql_init(&mysql);
if(!mysql_real_connect(&mysql,DB_HOST,DB_USER,DB_PASS,DB_NAME,DB_PORT,NULL,0))
{
fprintf(stderr, "Failed to connect to database: Error: %s\n",mysql_error(&mysql));
}
mysql_query(&mysql,"SET NAMES utf8");
for(i = 0; i < 444444; i++)
{
sprintf(itemName,"%s","");
userId = rand()%19071388 + 1;
type = rand()%4 + 1;
itemCate = rand()%15 + 1;
itemType = rand()%100 + 1;
itemNum = rand()%100 + 1;
totalCost = rand()%10000 + 1;
consumeTime = rand()%1309120853 + 1;
leftBalance = rand()%10000 + 1;
sprintf(sql,"insert into user_consume1(userId,type,itemCate,itemType,itemNum,totalCost,consumeTime,leftBalance,itemName)values(%d,%d,%d,%d,%d,%d,%d,%d,'')",
userId,type,itemCate,itemType,itemNum,totalCost,consumeTime,leftBalance);
if(mysql_query(&mysql,sql))
{
fprintf(stderr,"query failed:%s",mysql_error(&mysql));
}
}
mysql_close(&mysql);
// 结束执行时间
gettimeofday(&time_end,NULL);
execute_time = (time_end.tv_sec - time_start.tv_sec) + (time_end.tv_usec - time_start.tv_usec)/1000000;
printf("execute time:%f\n",execute_time);
exit(0);
}
else
{
/* 父进程, 等待子进程结束,并打印子进程的返回值 */
//wait ( &rtn );
//printf("child process return %d\n",rtn);
//return 0;
//printf("execute child process return %d\n",process_no);
}
}
return 0;
}
分享到:
相关推荐
C# MySQL数据库备份还原 C# MySQL数据库批量备份还原工具是使用C#语言开发的一个数据库备份还原工具,主要用于对MySQL数据库进行批量备份和还原操作。该工具使用了Process类来操作cmd.exe,调用mysqldump.exe来执行...
MySQL数据库是世界上最受欢迎的关系型数据库管理系统之一,广泛应用于各种规模的企业和项目中。数据库的数据备份与还原是数据库管理中的重要环节,确保数据的安全性和可恢复性。本项目提供了一个基于Java Servlet...
**MySQL数据库原理** MySQL是一种广泛使用的开源关系型数据库管理系统(RDBMS),它以其高效、稳定和易用性在全球范围内赢得了广大用户的喜爱。本PPT将深入探讨MySQL的基本原理、功能特性和应用实践。 1. **数据库...
在本项目"多进程爬取在线课程并存入MySQL数据库"中,开发者利用了这一特性来优化网络爬虫的性能,以更高效地抓取在线课程信息,并将获取的数据存储到MySQL数据库中。以下将详细讲解多进程爬取和数据库存储的相关知识...
在Python编程领域,多进程爬取在线课程并存入MySQL数据库是一种常见的数据获取与存储方法。这个项目涉及到了网络爬虫、多进程处理以及数据库操作等核心知识点,下面将逐一详细解析。 首先,网络爬虫是自动抓取...
在本项目"基于Python的多进程爬取在线课程并存入Mysql数据库.zip"中,主要涉及了Python编程语言在Web爬虫领域的应用,以及如何将获取的数据存储到MySQL数据库中。这一综合性的任务适用于计算机科学与技术相关专业的...
总结起来,虽然Shell本身不支持多线程,但我们可以通过FIFO文件和进程间的通信来模拟多线程行为,实现批量处理任务,例如在当前目录下批量插入MySQL数据库。这种方法在处理大量并发任务时非常有用,提高了工作效率。
该压缩包文件“网络爬虫-多进程爬取在线课程并存入MySQL数据库-Python源码示例.zip”提供了一个Python实现的网络爬虫项目,旨在通过多进程技术抓取在线课程信息,并将数据存储到MySQL数据库中。这个项目涵盖了以下几...
【Java代码 MySql导出到SqlLite】是一种技术实践,它涉及到使用Java编程语言来实现一个功能,该功能能够将MySQL数据库中的数据高效地导出到SQLite数据库文件中。这一过程通常用于数据迁移、备份或者在不同环境之间...
对于这个量级的数据,用简单的单进程/单线程导入 会耗时很久,最终用了多进程的方式来实现。具体过程不赘述,记录一下几个要点: 批量插入而不是逐条插入 为了加快插入速度,先不要建索引 生产者和消费者模型,...
搭建MySQL数据库平台是一个重要的步骤,尤其对于任何依赖于数据库存储和处理数据的系统而言。MySQL是一种流行的开源关系型数据库管理系统,被广泛应用于各种规模的企业和项目中,因其高效、稳定和易于管理而受到青睐...
MySQL数据库的安全机制是确保数据安全的关键组成部分,尤其在如今广泛应用于网络开发的环境中。MySQL作为一个多用户、多线程的关系型数据库管理系统,其安全性尤为重要。本文主要探讨了MySQL的权限系统,即如何控制...
在Python3中操作MySQL数据库并插入一条数据,然后获取并返回这条...通过上述步骤,可以完整地实现使用Python3插入MySQL数据库数据并获取插入数据的主键id的功能,这对于数据库编程和数据管理都是非常重要的操作技能。
本文将详细介绍MySQL数据库的一些常用操作,包括如何启动和终止MySQL服务器。 MySQL服务器的启动与终止方法因操作系统和安装类型的不同而有所差异。在Windows和Unix/Linux系统上,启动MySQL可以通过直接运行守护...
MySQL数据库由多个组成部分构成,包括服务器进程、客户端工具、存储引擎、数据表等。服务器进程处理客户端的请求,而客户端工具如MySQL命令行或MySQL Workbench用于与服务器交互。存储引擎负责实际的数据存储和检索...
在本文中,我们将深入探讨MySQL的核心概念、功能以及如何安装MySQL 5.7.30社区版,这是从"mysql数据库.zip"压缩包中包含的文件"mysql-installer-community-5.7.30.0.msi"。 1. **MySQL核心概念**: - **关系型...
《Linux全攻略-MySQL数据库配置与管理》一书详尽阐述了如何在Linux环境中管理和配置MySQL数据库。MySQL是一个被广泛采用的关系型数据库管理系统,尤其在互联网领域,它与Linux、Apache、PHP一起构成了构建网站的常见...
MySQL数据库是世界上最流行的开源关系型数据库管理系统之一,其在各种规模的企业、开发项目和个人应用中都有广泛的应用。在MySQL的安装目录下,有一个名为“bin”的文件夹,它包含了MySQL服务器运行以及管理所需的...
MySQL数据库是广泛应用于Web开发中的关系型数据库管理系统,它的强大在于其灵活性、高效性和易用性。本文档主要涵盖了MySQL数据库的基础知识、操作技巧以及PHP与MySQL的交互,旨在提升数据库管理和应用能力。 1. **...