#每天一个知识点# 最近在优化一批复杂 SQL,从原来 8 秒优化到 100ms 内,总结几个 MySQL 实战心得:
小表驱动大表,关联顺序直接影响执行计划
联合索引遵循:等值条件在前,排序字段在后
小数据量下优化器可能不走索引,属于正常现象
想要 ORDER BY 不 filesort,直接把排序字段放进索引
多表关联尽量用覆盖索引,避免回表
日常 CRUD 看不出差距,一到大报表、分页查询,索引好坏直接决定系统卡不卡。
#每天一个知识点#
在 Qt 中,可以使用 QDateTime 类来处理日期和时间。下面示例代码,用于将 QDateTime 对象转换为时间字符串,以及将时间字符串反向转换为 QDateTime 对象:
#include <QCoreApplication>
#include <QDateTime>
#include <QDebug>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
// 将 QDateTime 对象转换为时间字符串
QDateTime dateTime = QDateTime::currentDateTime(); // 获取当前时间对象
QString timeString = dateTime.toString("yyyy-MM-dd hh:mm:ss"); // 将时间对象格式化为字符串
qDebug() << "Time string:" << timeString;
// 将时间字符串反向转换为 QDateTime 对象
QDateTime newDateTime = QDateTime::fromString(timeString, "yyyy-MM-dd hh:mm:ss"); // 将时间字符串解析为时间对象
qDebug() << "New date time:" << newDateTime.toString("yyyy-MM-dd hh:mm:ss");
return a.exec();
}
代码中获取了当前的时间对象 dateTime,通过 toString() 方法将其格式化为字符串。在格式化时,使用了类似 yyyy-MM-dd hh:mm:ss 的格式字符串,表示年、月、日、小时、分钟和秒。
再使用 fromString() 方法将字符串 timeString 反向转换为时间对象,并将其存储在变量 newDateTime 中。在解析时,使用了与格式化相同的格式字符串 "yyyy-MM-dd hh:mm:ss"。
在 Qt 中,可以使用 QDateTime 类来处理日期和时间。下面示例代码,用于将 QDateTime 对象转换为时间字符串,以及将时间字符串反向转换为 QDateTime 对象:
#include <QCoreApplication>
#include <QDateTime>
#include <QDebug>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
// 将 QDateTime 对象转换为时间字符串
QDateTime dateTime = QDateTime::currentDateTime(); // 获取当前时间对象
QString timeString = dateTime.toString("yyyy-MM-dd hh:mm:ss"); // 将时间对象格式化为字符串
qDebug() << "Time string:" << timeString;
// 将时间字符串反向转换为 QDateTime 对象
QDateTime newDateTime = QDateTime::fromString(timeString, "yyyy-MM-dd hh:mm:ss"); // 将时间字符串解析为时间对象
qDebug() << "New date time:" << newDateTime.toString("yyyy-MM-dd hh:mm:ss");
return a.exec();
}
代码中获取了当前的时间对象 dateTime,通过 toString() 方法将其格式化为字符串。在格式化时,使用了类似 yyyy-MM-dd hh:mm:ss 的格式字符串,表示年、月、日、小时、分钟和秒。
再使用 fromString() 方法将字符串 timeString 反向转换为时间对象,并将其存储在变量 newDateTime 中。在解析时,使用了与格式化相同的格式字符串 "yyyy-MM-dd hh:mm:ss"。
展开
1
6