MYSQL的性能问题

detartrant 2008-04-11 11:06:37
使用VC开发C/S结构的应用,采用VC直接调用远程MYSQL服务器的C API,这种方式跟WEB下面ASP.NET等调用MYSQL的方式在性能上有区别吗?

尤其是当并发连接数量较大(过千),且用户每次传送数据量都较大(1M-20M)时,这种赤裸裸地VC调用MYSQL api的方式不知道可行不可行?

对数据库底层的东西不擅长,请资深的兄台指教。。。多谢
...全文
174 37 打赏 收藏 转发到动态 举报
写回复
用AI写文章
37 条回复
切换为时间正序
请发表友善的回复…
发表回复
developCpp 2008-04-16
  • 打赏
  • 举报
回复
遇到同行了,呵呵
我做的是服务端是MySQL+PHP,
客户端用VC开发的一个读取USB设备的程序,将读取的数据送入服务器的MySQL数据库中,我是把数据压缩到最小再发给服务器的
懒得去死 2008-04-16
  • 打赏
  • 举报
回复
分的越细越好,程序中好多功能都进行分离。然后如果数据库端可以考虑负载均衡(读写分离)。
至于怎么做,网上好多资料。
liuyann 2008-04-12
  • 打赏
  • 举报
回复

1.连接池不是放在SERVER端吗。。。
是放在SERVER端

2.连接数据库的账号和密码都放在本地软件中,这安全性是不是有问题?
安全性有问题,可以被直接用notepad打开你exe文件看到,如果你加密了,也可以直接监听网络IP包看到,除非你设置SSH
==== ====
detartrant 2008-04-12
  • 打赏
  • 举报
回复
谢谢楼上的老大。

1.连接池不是放在SERVER端吗。。。
2.连接数据库的账号和密码都放在本地软件中,这安全性是不是有问题?
懒得去死 2008-04-12
  • 打赏
  • 举报
回复
MYSQL本来就是用C开发的。
懒得去死 2008-04-12
  • 打赏
  • 举报
回复
比ADO的快点。
不知道你程序端用没有用连接池。
detartrant 2008-04-12
  • 打赏
  • 举报
回复
谢谢,我琢磨琢磨
liuyann 2008-04-12
  • 打赏
  • 举报
回复

应该可以把,要看具体的数据量,和你的数据结构,有很多东西要考虑的。
==== ====
detartrant 2008-04-12
  • 打赏
  • 举报
回复
[Quote=引用 31 楼 detartrant 的回复:]
liuyann,我倒是觉得用ACE传输数据,不要关注协议底层的东西(当然不用过多考虑容错的问题了),然后SERVER端直接LISTEN并SEND TO DB,这个思路也许不错。
[/Quote]

liuyann,兄台觉得这个方案可行吗?
detartrant 2008-04-12
  • 打赏
  • 举报
回复
如果再在传输数据中加入加密的认证码,在服务器端的伺服线程用对应的密钥解密,通过认证后再把数据按照数据包中的account信心送入对应的table,这样倒在安全和性能上都得到了最优。
detartrant 2008-04-12
  • 打赏
  • 举报
回复
liuyann,我倒是觉得用ACE传输数据,不要关注协议底层的东西(当然不用过多考虑容错的问题了),然后SERVER端直接LISTEN并SEND TO DB,这个思路也许不错。
liuyann 2008-04-12
  • 打赏
  • 举报
回复

但 用socket listener 程序比较麻烦,还要考虑容错。

用datafile传递,基本不用什么程序了。也不会有数据丢失的顾虑
==== ====
detartrant 2008-04-12
  • 打赏
  • 举报
回复
[Quote=引用 27 楼 liuyann 的回复:]
数据库中很多表,那么CRON得自己读取数据文件中的信息,然后才能知道送到那个表中?

你的client 知不知道数据要放到哪个表? 如果知道,就自然可以分成不同filename, or directory.
不同的file to 不同的table


====思想重于技巧====

[/Quote]

这确实是个方法。实现起来比较容易,但估计性能比listener+dispatcher的方法要差一些。
detartrant 2008-04-12
  • 打赏
  • 举报
回复
[Quote=引用 26 楼 liuyann 的回复:]
腾讯 是在server 是开一个 进程 打开 listerner (TCP) 然后所有 client requst to this listener, listener 通过TCP receive数据可,先转发出去,同时交给另一进程,写入数据库====思想重于技巧====

[/Quote]

coooool, smart guy! 看来撞到高手了
liuyann 2008-04-12
  • 打赏
  • 举报
回复

数据库中很多表,那么CRON得自己读取数据文件中的信息,然后才能知道送到那个表中?

你的client 知不知道数据要放到哪个表? 如果知道,就自然可以分成不同filename, or directory.
不同的file to 不同的table


==== ====
liuyann 2008-04-12
  • 打赏
  • 举报
回复

腾讯 是在server 是开一个 进程 打开 listerner (TCP) 然后所有 client requst to this listener, listener 通过TCP receive数据可,先转发出去,同时交给另一进程,写入数据库
==== ====
detartrant 2008-04-12
  • 打赏
  • 举报
回复
如果用户数量很大时,这种被动查询方法也许就没法保证实时性了。
detartrant 2008-04-12
  • 打赏
  • 举报
回复
数据库中很多表,那么CRON得自己读取数据文件中的信息,然后才能知道送到那个表中? 我很好奇腾讯会是怎样实现的。。。
liuyann 2008-04-12
  • 打赏
  • 举报
回复

如果realtime,则跑一个后台进程即可,不停的检查 data file 的 目录,有则load,并move data file to archive folder.
==== ====
liuyann 2008-04-12
  • 打赏
  • 举报
回复

CRON 你可以每分钟load 一次data
==== ====
加载更多回复(17)

56,687

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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