我在 MySQL 数据库中有数据,我想将其放入向量中以便对其进行一些数学运算。可能这个问题不是特定于 QSqlTableModels 而是任何 QAbstractTableModel,但我不确定。现在,我有
model->QSqlQueryModel::setQuery(q); //model is a QSqlTableModel, q gets 1 column of data
QVector<QVariant> var;
var.reserve(num_rows);
QVariant datum;
QModelIndex idx;
for (i=0; i<num_rows; ++i)
{
idx = model->index(i,0,QModelIndex());
datum = model->data(idx);
var.push_back(datum);
}
有什么方法可以改善这一点,例如我可以使用的较低级别的复制操作?
编辑:按照 beduin 的建议,我尝试在没有 QSqlTableModel 的情况下执行此操作,而是简单地遍历 QSqlQuery。这导致性能显着降低。例如,使用上述方法进行的复制操作需要 380ms,迭代 QSqlQuery 需要 525ms,并且与其他查询有类似的差异。