mysql插入耗时长是什么原因

悠然的二货 2019-07-16 10:59:24
SQL语句为INSERT INTO test (test1, test2,test3) VALUES ('000000000000000000000000000000000000000000000002', '323','11111')
使用的方法为MySqlCommand mysqlcom = new MySqlCommand(sqlstr, mysqlcon);
MySqlDataReader reader = mysqlcom.ExecuteReader();在这句耗时200毫秒
...全文
3113 43 打赏 收藏 转发到动态 举报
写回复
用AI写文章
43 条回复
切换为时间正序
请发表友善的回复…
发表回复
chalkbox 2019-07-21
  • 打赏
  • 举报
回复
建议单独写在一个php中,然后调用
luj_1768 2019-07-21
  • 打赏
  • 举报
回复
主要是因为晕菜。
软件老王 2019-07-20
  • 打赏
  • 举报
回复
200毫秒也不过0.20秒还好吧?试试1万条。应该也还好,驱动要建立连接这些都是要时间的。。
橘子皮... 2019-07-20
  • 打赏
  • 举报
回复
微软的sql用的多还是mysql用的多,哪个速度快哦
橘子皮... 2019-07-20
  • 打赏
  • 举报
回复
引用 35 楼 秋的红果实 的回复:
无非就是优化sql语句
若数据量超大,尝试sqlbulkcopy


mysql里没有sqlbulkcopy 把
货郎大叔 2019-07-20
  • 打赏
  • 举报
回复
打表然后再插数据,插完了在关闭
summer followers 2019-07-19
  • 打赏
  • 举报
回复
进来膜拜一下大佬
xiaoxiangqing 2019-07-19
  • 打赏
  • 举报
回复
要多试几次,看后面几次的平均时间
秋的红果实 2019-07-19
  • 打赏
  • 举报
回复
无非就是优化sql语句 若数据量超大,尝试sqlbulkcopy
  • 打赏
  • 举报
回复
引用 楼主 a785214563的回复:
SQL语句为INSERT INTO test (test1, test2,test3) VALUES ('000000000000000000000000000000000000000000000002', '323','11111')
使用的方法为MySqlCommand mysqlcom = new MySqlCommand(sqlstr, mysqlcon);
MySqlDataReader reader = mysqlcom.ExecuteReader();在这句耗时200毫秒
用pdo连接插入试试
  • 打赏
  • 举报
回复
打表然后再插数据,插完了在关闭呀
LvBao_117 2019-07-17
  • 打赏
  • 举报
回复
是不是原表数据量大,或者建立了索引
weixin_36164344 2019-07-17
  • 打赏
  • 举报
回复
引用 8 楼 XBodhi. 的回复:
https://www.jianshu.com/p/7b35cbc7df75
牧歌ing 2019-07-17
  • 打赏
  • 举报
回复
做成单例好了,没有多线程的情况下速度会有很大提升,因为省去了打开连接和关闭连接
强大的农民 2019-07-17
  • 打赏
  • 举报
回复
这个还要看你数据库的情况, 一般来说如果这个表的索引多一点,并且数据很多,就需要耗较长时间, 另外,还要看你的mysql数据库的配置。如果数据库服务器的配置低也会耗时长, 还有就是网络的通讯情况,如果网速很慢,也是其中之一的原因。 另外如果数据库服务器有其他数据库,而其他数据库的读取频率很高,也会有影响。 一般来说mysql的默认连接数是100,新版的是150(优化设置的除外).,如果连接数比较多,或是连接池很大,也会有影响。 可以使用show PROCESSLIST; 这个SQL语句来查数据库的情况,可以看到是否有锁和延时较长的SQL。 还有一种情况,其他软件占用了CPU和硬盘,内存,网络等资源,也会有影响。 连接字符串最好是IP地址,如果是本机使用127.0.0.1之类的,不要使用计算机名称,有的计算机名称解析慢。 所以这种问题 需要综合分析 查找问题所在。 MySqlConnection mysqlcon = new MySqlConnection(str_sqlcon); mysqlcon.Open(); MySqlCommand mysqlcom = new MySqlCommand(strSql, mysqlcon); mysqlcom.ExecuteNonQuery(); 这个代码只能说是没错。但不是优。可以使用一些成熟的框架来代替。如果操作频率较高。打开和关闭连接销耗的资源也是很多的。效率也不高。
墨海珠花 2019-07-17
  • 打赏
  • 举报
回复
刷新下,有的机子可能会卡的
悠然的二货 2019-07-17
  • 打赏
  • 举报
回复
引用 21 楼 吹风的兔子 的回复:
应该是你的程序 没有 “预热”。

C# 程序 对于新执行的代码,都会有一堆 编译成机器码的操作 —— 俗称 “预热”。


楼主可以 这样:

第一次执行 会有 一堆额外操作 干扰性能测试。
将你要测试的代码 执行 2次 以上 —— 第二次 的 性能 才是真实性能。

我执行了1000次都是200ms左右....
KK_MM1083 2019-07-17
  • 打赏
  • 举报
回复
去公司的服务器执行,对比看看。
qq_14936673 2019-07-17
  • 打赏
  • 举报
回复
第一次操作可能会时间长些,因为要建立连接,建议你多添加几次算总时间。
weixin_45418648 2019-07-17
  • 打赏
  • 举报
回复
我特么也不知道
加载更多回复(23)

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧