我用C#链接MySQL数据库之后,执行删除 *** 作,出现超出索引范围,求解决

我用C#链接MySQL数据库之后,执行删除 *** 作,出现超出索引范围,求解决,第1张

c#连接MySql数据库的方法

一、用MySQLDriverCS连接MySQL数据库。

先下载和安装MySQLDriverCS,在安装文件夹下面找到MySQLDriverdll,然后将MySQLDriverdll添加引用到项目中。

using System;

using SystemCollectionsGeneric;

using SystemComponentModel;

using SystemData;

using SystemDrawing;

using SystemLinq;

using SystemText;

using SystemWindowsForms;

using MySQLDriverCS;

namespace jxkh

{

public partial class frmLogin : Form

{

public frmLogin()

{

InitializeComponent();

}

private void btnLogin_Click(object sender, EventArgs e)

{

(一) 索引类似字典以及书籍的目录,索引的作用就是加快检索数据的速度,提高效率,

索引分类为:

逻辑上:

Single column 单列索引

Concatenated 多列索引

Unique 唯一索引

NonUnique 非唯一索引

Function-based函数索引

Domain 域索引

物理上:

Partitioned 分区索引

NonPartitioned 非分区索引

B-tree:

Normal 正常型B树

Rever Key 反转型B树

Bitmap 位图索引

(二) 聚集索引和非聚集索引有什么区别?

例如由于字典是按照拼音的顺序来实际存储的,因此对拼音的索引是聚集索引,

也可以建立对笔画等的索引,由于实际存储并不是按照笔画的顺序来存储的,

因此对笔画的索引是非聚集索引,

(三)简述分区表和分区索引的优点:应该是利用不同的分区可以使得检索数据并行,进一步提高速度。

mysql数据库索引是一种能够让mysql数据查询更加快速的数据结构,我们在新建数据库的时候,如果设置了某个字段的Primary key主键,那么数据库会默认为我们的主键字段创建一个唯一索引(Unique Index)的东西,所以你就不需要再为此字段创建mysql数据库索引了,当然了,如果你想设置别的字段索引,那么就要额外加入该字段的数据库索引了。

一:Mysql数据库索引的创建

1)如何为我们的mysql数据库添加索引呢?很简单,请看下面的创建mysql普通索引格式:

CREATE INDEX [index name] ON [table name]([column name]);

参数说明:NameDescription

index name索引名称

table name需要添加索引的表名称

column name需要添加索引的列名称

例如我们要创建一个索引,就可以使用如下的mysql命令运行即可:CREATE INDEX myindex ON mytable(aut_id);

2)唯一索引的创建,和mysql普通索引差不多,只需要在INDEX关键词前面加入UNIQUE关键词即可,mysql命令如下:CREATE UNIQUE INDEX myindex ON mytable(aut_id);

我们也可以使用USING BTREE关键字,B-tree算法减少定位记录时所经历的中间过程,从而加快存取速度,mysql命令如下:CREATE UNIQUE INDEX myindex ON mytable(aut_id) USING BTREE;

二:查看mysql数据库索引

我们可以使用以下命令查询刚刚新建的mysql数据库索引,“from mytable”代表查询该数据库表里面有哪些索引,mysql命令如下:show index from mytable;

创建成功之后,会在“key_name”字段中显示刚刚创建的数据库索引名称,如图所示:

三:删除mysql数据库索引

我们也可以使用mysql命令删除某张表的索引,命令如下:drop index english on mytable

四:查询sql语句是否使用了mysql索引

我们上面常见好mysql数据库索引之后,如果想要知道我们在执行sql语句时是否使用了数据库索引,就要在sql语句前面加入“EXPLAIN”关键词,命令如下所示:EXPLAIN SELECT FROM `allword` where english='America';

如果使用到了我们创建的字段索引,就会看到如图所示的字段都不会是NULL空值,如下:

在有些情况下mysql索引会失效,也就是在执行到sql语句时没有使用到我们创建的数据库表字段索引,可能有以下这些情况:

1:使用了OR关键字查询

2:或者LOWER(),UPPER()函数,

3:还有一种就是使用了LIKE关键字查询,像(like '%XX'或者like '%XX%')这样的语句,但是像(like 'XX%')这种情况的mysql表索引是不会失效的。

以上就是关于我用C#链接MySQL数据库之后,执行删除 *** 作,出现超出索引范围,求解决全部的内容,包括:我用C#链接MySQL数据库之后,执行删除 *** 作,出现超出索引范围,求解决、数据库的索引问题、mysql为啥建选不了普通索引等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9381571.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存