mysql导出csv文件(百万级数据) 心得

本文分享了在MySQL中导出CSV文件,尤其是处理百万级数据时遇到的问题及解决方案。针对0开头数值消失的问题,可以使用CONCAT添加制表符;对于乱码,建议使用特定编码或编辑器手动转换;快速导出CSV或XLS文件的SQL语句也有详细说明,并提醒注意可能的行数不匹配和文件格式问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1,某列存在0开头的数值(如果是字符没事如:000x;如果是数值有事如:0001),导出时数值消失,怎么办?
    需要先将该列的值修改为“制表符tab+值”,sql语句如下:update gf_goods  set number=CONCAT("    ",number) ;
    好处:
    1.1,对其他字段的影响降到最低(分隔符不变,不会错分单元格);
    1.2,不影响排序orderby;
2,导出文件存在乱码怎么办??
    数据库存值有三种可能:英文、中文、外文(如日文等),csv文件默认编码是gbk;
    两种方法:
    2.1,用编辑器手动打开后改编码然后存储,效果完美;
    2.2,导出的sql语句增加CHARACTER SET gbk,外文会变成???;
3,mysql直接导出csv文件,用sql速度超级超级快(绝对爽),导出文件的sql语句如下:
SELECT    id,number,price,NAME FROM gf_goods order by number asc LIMIT 0,10 INTO OUTFILE 'd:/7.csv' CHARACTER SET gbk FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' ESCAPED BY '\"' LINES TERMINATED BY '\r\n';
    注意:如果报错说是INTO OUTFILE的路径有问题或者未设置,则修改my.ini,增加一行:secure_file_priv='D:/';
4,有时候会发现导出10条数据,csv怎么才9行?
    两种可能性:
    4.1,因为乱码导致2行合并,采用2.2方案后解决;
    4.2,因为双引号",增加ESCAPED BY '\"'后解决;


mysql导出xls文件
1,mysql直接导出xls文件,用sql速度比导出csv更快,导出文件的sql语句如下:
SELECT    id,number,price,NAME FROM gf_goods order by number asc LIMIT 0,10 INTO OUTFILE 'd:/1.xls' CHARACTER SET gbk ;
2,导出xls和导出csv,其实质是一样的(都是往txt文本里写内容),上限数量也是一样的,区别在于:
    2.1,存在0开头的数值时,如采用类似csv解决方案,则生成文件有一列的值是\,需要手动删除;
    2.2,不需要双引号作为包围符号,用编辑器观察生成文件能够观察到效果;
3,mysql直接导出xls文件,不能导出xlsx文件(我没试出导出xlsx效果),我使用navicat软件,能够导出xlsx文件,但是上限数量是26w;

灵敏度(Sensitivity 或 Recall),又称为真阳性率,是指实际为正样本中被模型正确识别的比例,公式通常是 TP / (TP + FN),其中TP表示真正例(True Positive),FN表示假阴性(False Negative)。特异性(Specificity)则是指预测为负样本中真实为负的比例,即 TN / (TN + FP),TPR = Sensitivity,TNR = Specificity。 准确率(Accuracy)计算的是所有预测正确的样本数占总样本数的比例,即 (TP + TN) / (TP + TN + FP + FN)。然而,对于类别不平衡的数据集来说,准确率可能会误导,因为它没有考虑到错误分类的重要性。 马修斯相关系数(Matthews Correlation Coefficient, MCC)是一种用于评估二分类模型性能的统计量,它的值介于-1和1之间,正值代表较好的分类效果,0表示随机猜测,负值则表示较差。 ROC曲线(Receiver Operating Characteristic Curve)下的面积(Area Under the Curve, AUC)是一个常用的评价指标,它衡量了模型在所有阈值下,真正例率(TPR)与假正例率(FPR)之间的权衡。AUC值越接近1,模型性能越好;0.5表示随机猜测。 以下是使用Python的sklearn库计算这些指标的简单示例: ```python from sklearn.metrics import confusion_matrix, recall_score, precision_score, accuracy_score, matthews_corrcoef, roc_auc_score # 假设y_true是真实的标签,y_pred是模型预测的结果 conf_mat = confusion_matrix(y_true, y_pred) TP = conf_mat[1, 1] # 真正例 FP = conf_mat[0, 1] # 假正例 FN = conf_mat[1, 0]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值