开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 4084|回复: 19
收起左侧

[已解决] 易语言MYSQL并发访问的问题

 关闭 [复制链接]
结帖率:85% (33/39)
发表于 2017-7-8 17:27:46 | 显示全部楼层 |阅读模式   浙江省杭州市
20精币
现有个项目需要客户Duan从服务器不停刷新数据显示
客户Duan连接到服务器,每秒向服务器提取数据,服务器收到请求后在 数据达到事件里读取MYSQL相关的数据库并将结果直接返回给客户Duan
问题是这样的,MYSQL的连接和断开,是在启动服务端的时候连接还是在读写数据库的时候连接?因为我发现取记录集()是跟MYSQL句柄有关系的,那是不是意味着我每次读写数据库都需要单独连接一次MYSQL分配一个MYSQL句柄给本次读写?

最佳答案

查看完整内容

写了个模型,你按这个方法写,还给你备注了 该写数据库操作的地方,你按这个写就可以了

回答提醒:如果本帖被关闭无法回复,您有更好的答案帮助楼主解决,请发表至 源码区 可获得加分喔。
友情提醒:本版被采纳的主题可在 申请荣誉值 页面申请荣誉值,获得 1点 荣誉值,荣誉值可兑换荣誉会员、终身vip用户组。
快捷通道:申请荣誉值无答案申请取消悬赏投诉有答案未采纳为最佳
结帖率:20% (1/5)
发表于 2017-7-8 17:27:47 | 显示全部楼层   浙江省温州市
写了个模型,你按这个方法写,还给你备注了 该写数据库操作的地方,你按这个写就可以了

服务器队列.e

4.46 KB, 下载次数: 186

评分

参与人数 1荣誉 +1 收起 理由
Hoibben + 1 热心帮助他人,荣誉+1,希望继续努力(*^__^*) 嘻嘻!

查看全部评分

回复

使用道具 举报

结帖率:89% (33/37)

签到天数: 2 天

发表于 2017-7-8 17:48:45 | 显示全部楼层   山东省青岛市
启动窗口创建的时候连接一次就行了

补充内容 (2017-7-8 17:52):
窗口销毁的时候断开
回复

使用道具 举报

结帖率:85% (33/39)

签到天数: 14 天

 楼主| 发表于 2017-7-8 17:57:06 | 显示全部楼层   浙江省杭州市
xiaowg 发表于 2017-7-8 17:48
启动窗口创建的时候连接一次就行了

补充内容 (2017-7-8 17:52):

那么这一个mysql连接句柄可以做到并发读写MYSQL的数据?
因为我的程序是每秒从服务端同步数据,服务端在 数据达到事件事读写MYSQL数据库
查询的数据需要用到 取记录集()获取查询结果并返回给客户Duan,这个取记录集()需要用到MYSQL句柄,那岂不是不能并发了?
回复

使用道具 举报

结帖率:89% (33/37)

签到天数: 2 天

发表于 2017-7-8 17:59:20 | 显示全部楼层   山东省青岛市
最恨VC 发表于 2017-7-8 17:57
那么这一个mysql连接句柄可以做到并发读写MYSQL的数据?
因为我的程序是每秒从服务端同步数据,服务端在 ...

没看明白你说的并发是什么意思,但你按我说的做是肯定错不了的


补充内容 (2017-7-8 18:02):
你是担心同一个句柄读、写冲突?不会的,只要连接了你干什么都是按提交SQL的先后处理的
回复

使用道具 举报

结帖率:85% (33/39)

签到天数: 14 天

 楼主| 发表于 2017-7-8 18:04:23 | 显示全部楼层   浙江省杭州市
xiaowg 发表于 2017-7-8 17:59
没看明白你说的并发是什么意思,但你按我说的做是肯定错不了的

在我的理解
如果服务端同时接受到多个客户Duan并发的读取请求
那么如果只有服务端启动时的连接MYSQL,那么这个MYSQL句柄应该大家都是相同的
在服务端每个 数据达到() 事件内并发查询MYSQL的话得到的数据,如果通过取记录集()返回的话不是只能返回相同的结果吗?因为取记录集()是取MYSQL查询的最后一次结果啊
回复

使用道具 举报

结帖率:20% (1/5)
发表于 2017-7-8 18:24:59 | 显示全部楼层   浙江省温州市
不需要  连接数据库 只需要一次, 每次操作表的时候你都执行打开和关闭了,数据会更新的,不过 如果按你这样的话,假设 客户1 向服务器请求了数据,在处理数据的同时,客户2 也请求了,就会造成并发,其实MASQL的话,你可以用直接连接数据库,如果必须在服务器组件上操作的话 ,你就需要 分批,你可以这样,服务器无时无刻在生成可发送的数据,客户请求时就立即发送生成好的,你当前这种情况的话 应该是生成可发送的数据耗时比较大

补充内容 (2017-7-8 18:28):
数据库方面的并发 其实你补需要担心,你只要担心你服务器的并发就好了,因为,这个并发可不是好解决的,数据到达子程序 处理速度快 还好,处理速度慢 并发家常便饭一样
回复

使用道具 举报

结帖率:89% (33/37)

签到天数: 2 天

发表于 2017-7-8 18:36:58 | 显示全部楼层   山东省青岛市
最恨VC 发表于 2017-7-8 18:04
在我的理解
如果服务端同时接受到多个客户Duan并发的读取请求
那么如果只有服务端启动时的连接MYSQL, ...

个MYSQL句柄每次连接都是不同的

补充内容 (2017-7-8 18:38):
取记录集()是提取SQL查询语句返回的数据,取决于SQL语句提交时点,与句柄没关系
回复

使用道具 举报

结帖率:85% (33/39)

签到天数: 14 天

 楼主| 发表于 2017-7-8 18:38:45 | 显示全部楼层   浙江省杭州市
粉蝴蝶软件 发表于 2017-7-8 18:24
不需要  连接数据库 只需要一次, 每次操作表的时候你都执行打开和关闭了,数据会更新的,不过 如果按你这 ...

每个客户请求查询的数据是不同的,所以必须每次得到请求后服务端从数据库去查询,再返回。
在这个查询返回的期间,如果有另一个请求出现,就并发请求的话 取到记录集不就变成同一个结果了吗
所以我现在写的是每次服务端得到请求时在线程中单独连接MYSQL获得一个唯一的MYSQL句柄再查询
回复

使用道具 举报

结帖率:58% (7/12)
发表于 2017-7-8 18:50:25 | 显示全部楼层   山西省吕梁市
并发量大的话,必须合理使用每次连接,要不要连接数很快就会用完,到时候你就该悲剧了

点评

连接完得到数据后断开连接了   浙江省杭州市  发表于 2017-7-8 19:07
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 诚聘英才| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 800073686,邮箱:800073686@b.qq.com
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表