数据库主键int型和str型效率比较

 

又看到这样的一段话:

主键用整型会极大的提高查询效率,而字符型的比较开销要比整型的比较开销大很多,用字符型数据作主键会使数据插入、更新与查询的效率降低。数据量小的时候这点降低可能不会被注意,可是当数据量大的时候,小的改进也能够提高系统的响应速度。

我做了一个实验,用MSSQL企业管理器建立两张表TInt和TStr,
TInt
{
 intId  int  PRIMARY KEY
 intValue  int
}
TStr
{
 strId  varchar(20)  PRIMARY KEY
 strValue  varchar(20)
}
往这两张表数据分别为intId = intValue = 1 ~ 300000,strId = strValue = '1' ~ '300000'。然后用mfc封装的odbc分别执行
intRslt.Open(CRecordset::dynaset,"SELECT * FROM TInt WHERE intId = 123456",CRecordset::readOnly);

strRslt.Open(CRecordset::dynaset,"SELECT * FROM TSTR WHERE strId = '123456'",CRecordset::readOnly);
一千次。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在C#中,可以使用以下步骤将socket接收的字符串存入数据库中,并将该字符串作为: 1. 创建一个数据库表,包含一个名为“id”的自增列和一个名为“str”的唯一约束列。 2. 在C#代码中,使用System.Data.SqlClient命名空间中的SqlConnection和SqlCommand类连接到数据库并执行SQL语句。 3. 在socket接收到字符串后,将其存储到一个变量中。 4. 创建一个SqlCommand对象,将INSERT INTO语句与变量中的字符串拼接起来,将其作为SQL命令文本传递给SqlCommand对象。 5. 调用SqlCommand对象的ExecuteNonQuery方法执行SQL命令。 6. 如果在执行SQL命令时出现异常,则捕获并处理该异常。 以下是示例代码: ```csharp using System.Data.SqlClient; // 连接字符串 string connStr = "Data Source=(local);Initial Catalog=myDB;Integrated Security=True"; // 创建数据库连接对象 SqlConnection conn = new SqlConnection(connStr); // 打开数据库连接 conn.Open(); // 接收到的字符串 string receivedStr = "Hello, world!"; try { // 创建SQL命令文本 string sql = "INSERT INTO myTable (str) VALUES ('" + receivedStr + "')"; // 创建SqlCommand对象 SqlCommand cmd = new SqlCommand(sql, conn); // 执行SQL命令 int rowsAffected = cmd.ExecuteNonQuery(); // 输出执行结果 Console.WriteLine(rowsAffected + " rows affected."); } catch (Exception ex) { // 处理异常 Console.WriteLine(ex.Message); } finally { // 关闭数据库连接 conn.Close(); } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值