mysql添加索引mysql如何创建索引
在MySQL中,创建索引的方法有两种:使用命令行工具或者使用MySQL图形化工具。以下是两种方法的详细步骤:
方法一:使用命令行工具
1. 登录到MySQL服务器。在命令行中输入以下命令:
```css
mysql -u 用户名 -p
```
其中,用户名是您的MySQL用户名。执行此命令后,系统将提示您输入密码。
2. 选择要创建索引的数据库。使用以下命令选择要创建索引的数据库:
```perl
use 数据库名;
```
其中,数据库名是您要创建索引的数据库名称。
3. 创建索引。使用以下命令创建索引:
```sql
ALTER TABLE 表名 ADD INDEX 索引名 (列名);
```
其中,表名是要添加索引的表名称,索引名是您为索引指定的名称,列名是要添加索引的列名称。
例如,如果您要在名为"users"的表的"email"列上创建一个名为"idx_email"的索引,可以使用以下命令:
```sql
ALTER TABLE users ADD INDEX idx_email (email);
```
方法二:使用MySQL图形化工具
1. 启动MySQL图形化工具(如phpMyAdmin或MySQL Workbench)。
2. 连接到您的MySQL服务器。输入服务器地址、用户名和密码。
3. 选择要创建索引的数据库和表。在图形化工具中,您可以通过单击数据库名称来选择它,然后选择您要创建索引的表。
4. 创建索引。在工具栏或右键菜单中,选择"Alter Table"(更改表)选项。在弹出的对话框中,选择要添加索引的列,并设置索引名称和其他选项。单击"Apply"(应用)按钮以创建索引。
5. 等待图形化工具完成操作。在操作完成后,您可以验证索引是否成功创建。您可以通过执行以下查询来检查是否已成功创建索引:
```sql
SHOW INDEX FROM 表名;
```
其中,表名是您要检查索引的表名称。
mysql四个索引怎么建立
mysql四个索引建立语句如下:
create index 索引名 on table_name(column1,column2);
alter table table_name add index 索引名(column1,column2);
mysql innodb建立普通索引怎么写
先从数据结构的角度来答。
题主应该知道B-树和B+树最重要的一个区别就是B+树只有叶节点存放数据,其余节点用来索引,而B-树是每个索引节点都会有Data域。
这就决定了B+树更适合用来存储外部数据,也就是所谓的磁盘数据。
从Mysql(Inoodb)的角度来看,B+树是用来充当索引的,一般来说索引非常大,尤其是关系性数据库这种数据量大的索引能达到亿级别,所以为了减少内存的占用,索引也会被存储在磁盘上。
那么Mysql如何衡量查询效率呢?磁盘IO次数,B-树(B类树)的特定就是每层节点数目非常多,层数很少,目的就是为了就少磁盘IO次数,当查询数据的时候,最好的情况就是很快找到目标索引,然后读取数据,使用B+树就能很好的完成这个目的,但是B-树的每个节点都有data域(指针),这无疑增大了节点大小,说白了增加了磁盘IO次数(磁盘IO一次读出的数据量大小是固定的,单个数据变大,每次读出的就少,IO次数增多,一次IO多耗时啊!),而B+树除了叶子节点其它节点并不存储数据,节点小,磁盘IO次数就少。这是优点之一。
另一个优点是什么,B+树所有的Data域在叶子节点,一般来说都会进行一个优化,就是将所有的叶子节点用指针串起来。这样遍历叶子节点就能获得全部数据,这样就能进行区间访问啦。
至于MongoDB为什么使用B-树而不是B+树,可以从它的设计角度来考虑,它并不是传统的关系性数据库,而是以Json格式作为存储的nosql,目的就是高性能,高可用,易扩展。首先它摆脱了关系模型,上面所述的优点2需求就没那么强烈了,其次Mysql由于使用B+树,数据都在叶节点上,每次查询都需要访问到叶节点,而MongoDB使用B-树,所有节点都有Data域,只要找到指定索引就可以进行访问,无疑单次查询平均快于Mysql(但侧面来看Mysql至少平均查询耗时差不多)。
总体来说,Mysql选用B+树和MongoDB选用B-树还是以自己的需求来选择的。
还没有评论,来说两句吧...