我想在我的数据库中插入大约数百万条记录,但它速度非常慢,速度大约为40,000条记录/小时,我不认为我的硬件速度太慢,因为我看到磁盘的速度低于2 MiB/s.我有很多表分隔在不同的.sql文件中.一条记录也非常简单,一条记录少于15列,一列少于30个字符.我使用mysql 5.3在archlinux下完成了这项工作.你们有什么想法吗?或者这个速度不慢?
我有一个像下面这样定义的A类:
class A
{
public:
A() = default;
explicit A(uint32_t a, uint32_t b)
{
std::cout << "construct" << std::endl;
}
A(const A& obj)
{
std::cout << "copy" << std::endl;
*this = obj;
}
A(const A&& obj)
{
std::cout << "move" << std::endl;
*this = obj;
}
A& operator=(const A& obj)
{
std::cout << "copy operator" << std::endl;
return *this;
}
A& operator=(const A&& obj)
{
std::cout << "move operator" << std::endl;
}
};
Run Code Online (Sandbox Code Playgroud)
我使用这样的类:
std::vector<std::pair<A, bool>> v;
v.emplace_back(A(0, 1), true); …Run Code Online (Sandbox Code Playgroud) 我正在编写一个函数来检查 .so 是否在 Linux 下加载,代码如下:
#include <iostream>
#include <dlfcn.h>
#include <unistd.h>
using namespace std;
bool isLibraryLoaded(const string& libPath)
{
return (nullptr != dlopen(libPath.c_str(), RTLD_NOW | RTLD_NOLOAD));
}
int main(int argc, char** argv)
{
const string libPath = "/path/to/library.so";
cout << "loaded: " << isLibraryLoaded(libPath) << endl;
sleep(8); // first execution of lsof
// load lib
void* handle = dlopen(libPath.c_str(), RTLD_NOW);
cout << "handle: " << handle << endl;
if (nullptr != handle)
{
cout << "loaded: " << isLibraryLoaded(libPath) << …Run Code Online (Sandbox Code Playgroud)