MySQL在c++中运行缓慢
MySQL in C++ running slowly
我们有MySQL数据库。我们正在尝试连接到这个MySQL数据库与ODBC驱动程序在c++代码。我们使用的ODBC驱动程序是3.51版本。
数据库结构如下:我们在数据库D1中有一个会话表CONV_X1,其中包含客户端和服务器机器的IP地址以及与此会话对应的数据,格式如下:
ProtocolID ServerID ClientID TimeStamp InOctets outtoctets
24 167772161 167772162 1310121900 0 1.741e+006
632 167772161 167772162 1310121900 0 1.741e+006
24 167772161 167772162 1310122800 0 1.8e+006
我们在另一个数据库D2中有另一个表PROT_NAME,它有这个协议ID的信息。我们将数据库D1中的CONV_X1表中的ProtocolID映射到数据库D2中的PROT_NAME表中以获得协议名称。
从information_schema中取表名CONV_X1,因为D1中可以有多个具有相同名称但不同ID的表(例如:CONV_X1, CONV_X2等)
我们从这个数据库中提取的数据格式为
ServerID:ClientID_ProtocolName_InOctets_tableName
ClientID:ServerID_ProtocolName_InOctets_tableName
所以,对于1310121900时间戳我们操作的数据是以下格式
10.0.0.1:10.0.0.2_ftp_InOctets_CONV_X1 data is 0
10.0.0.2:10.0.0.1_ftp_InOctets_CONV_X1 data is 1.741e+006
10.0.0.1:10.0.0.2_udp_InOctets_CONV_X1 data is 0
10.0.0.2:10.0.0.1_udp_InOctets_CONV_X1 data is 1.741e+006
我们使用下面的查询来实现结果
select distinct concat(inet_ntoa(np.serverid), ':',inet_ntoa(np.clientid),'_inoctets_',rp.name,'_',c.table_name)HostCounter1, concat(inet_ntoa(np.clientid),':',inet_ntoa(np.serverid),'_inoctets_',rp.name,'_',c.table_name)HostCounter2, np.inoctets value1 ,np.outoctets value2, from_unixtime(timestamp) from information_schema.`COLUMNS` c,D1.CONV_X1 np,D2.PROT_NAME rp where c.table_schema='D1' AND c.table_name ='CONV_X1' AND np.protocolid=rp.id AND np.timestamp between unix_timestamp('2011-08-31 10:33:14') AND unix_timestamp('2011-08-31 11:33:14') order by timestamp;
这将给出如下格式的输出:
HostCounter1 HostCounter2 value1 value2 from_unixtime(timestamp)
10.0.0.1:10.0.0.2_ftp_InOctets_CONV_X1 10.0.0.2:10.0.0.1_ftp_InOctets_CONV_X1 0 1.741e+006 1310121900(in unix format)
10.0.0.1:10.0.0.2_udp_InOctets_CONV_X1 10.0.0.2:10.0.0.1_udp_InOctets_CONV_X1 0 1.741e+006
我们的c++代码使用SQL调用SQLDriverConnect(), SQLExecDirect()来执行此查询,这些调用需要花费大量时间来连接到数据库并执行此查询。由于这个原因,我们面临着c++代码的性能问题。请让我们知道是否有任何方法可以解决性能问题。ODBC驱动程序的更改对我们有帮助吗?我们可以优化查询吗?如果有,那是怎么回事?
尝试查看查询计划并确保您拥有适当的索引。
相关文章:
- 基于Q3DScatter的自定义图表,QCustom3DItem运行缓慢
- 与地图C++相比,无序地图运行异常缓慢
- 内存在 32 位嵌入式平台上运行缓慢
- 代码运行缓慢
- 公平的读者-作家票证旋转锁在C++运行缓慢
- CPP 程序在服务器上运行缓慢
- SIMD程序缓慢运行时
- 如果对象父对象是窗口,则Qt程序运行缓慢
- OpenGL代码在一台计算机上运行缓慢(但在其他计算机上则不然)
- GPU 调用后,CPU 代码运行缓慢
- 使用Qt c++ QWebView会导致GUI运行缓慢
- 由于编译器优化,代码运行缓慢
- c++ MFC应用程序在windows 7上运行缓慢,但在XP上运行迅速
- MySQL在c++中运行缓慢
- 为什么我插入到STL列表运行缓慢
- Vector push_back()与reserve()运行缓慢
- 字符串和unordered_map运行缓慢
- 字符数组和printf使程序运行缓慢
- 使程序运行缓慢
- c++代码在几秒钟后运行缓慢