以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  mysql数据库问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=146069)

--  作者:刘林
--  发布时间:2020/2/15 16:20:00
--  mysql数据库问题
请问老师,我现在是阿里云服务器上建的sqlserver2005做的数据库,  我查了些资料,l准备买mysql,请问能将原有数据库迁到mysql上吗?怎样迁?mysql与sqlserver有什么本质上的区别?
--  作者:有点蓝
--  发布时间:2020/2/15 16:26:00
--  
mysql使用起来有点麻烦,目前foxtable无法直接支持。foxtable里的么table,datatable的各种功能基本都无法使用了,需要自己使用.net的类型来操作数据。再说mysql语法不少都和SqlServer不一样的。

最后要说的是sqlserver2005并发上不会比mysql差多少的,您的项目瓶颈应该不会在数据库上。



--  作者:刘林
--  发布时间:2020/2/15 16:31:00
--  
我一直都觉得数据读写软慢,网上有说表的字段名用中文是不是要影响读取速度?有依据吗?
--  作者:刘林
--  发布时间:2020/2/15 16:39:00
--  
Dim dr As DataRow = DataTables("用户").SQLFind("[身份证号] = \'" & UserName & "\'  And [是否可用] = \'true\'")
我逐句查找下,这句在登录时用的如果用参数化来改写呢


Dim cmd As New SQLCommand
cmd.Co    nnecti \'记得设置数据源名称
cmd.CommandText = "Sele   ct Count(*) From {疫情表} where 登记日期= \'" & Date.today() & "\' And 是否正常=\'正常\'"
Dim zcCount As Integer = cmd.ExecuteScalar() \'获取总
cmd.CommandText = "Sele  ct Count(*) From {疫情表} where 登记日期= \'" & Date.today() & "\' and 是否正常=\'异常\'"
Dim ycCount As Integer = cmd.ExecuteScalar() \'获取总


统计后台的两个数据如何写效率更高呢?
[此贴子已经被作者于2020/2/15 16:47:34编辑过]

--  作者:有点蓝
--  发布时间:2020/2/15 17:02:00
--  
身份证号、登记日期设置到索引。像这种返回单行、简单条件统计的sql一般都不会有性能问题,只要有合适的索引。主要看查询返回大量数据的地方。

参数化改为使用SQLCommand即可,比如:
Dim cmd As new SQLCommand
cmd
.ConnectionName = "数据源名称"
cmd
.CommandText = "Select Count(*) From {疫情表} where 登记日期= ? And 是否正常=?"
cmd.Parameters.Add("@登记日期",Date.today)
cmd.Parameters.Add("@是否正常","正常")
Dim zcCount As Integer = cmd.ExecuteScalar()

学习一下怎么使用查询计划分析sql的性能:https://www.baidu.com/baidu?word=SqlServer+执行计划