MySQL中的索引是一种数据库结构,用于加速数据查询速度。索引可以类比为书籍的目录,使得数据库系统能更快地定位到所需的数据行。在实验报告中,我们主要涉及了索引的创建、管理和维护,以及对不同类型的索引的操作。
实验首先涉及到的是USERLOGIN和INFORMATION两张表。USERLOGIN表包含id(主键,自增)、name和password字段,而INFORMATION表包含id(主键,自增)、Name、Sex、Birthday、Address、Tel和pic字段。实验要求在这些表上创建、更改和删除索引。
1. 在INFORMATION表的name字段创建了一个名为index_name的单列索引:
```sql
CREATE INDEX index_name ON information (name(10));
```
这里使用了索引名称`index_name`,并且限制了name字段的前10个字符作为索引。
2. 创建了一个名为index_bir的多列索引,包括birthday和address字段:
```sql
CREATE INDEX index_bir ON information (birthday, address);
```
这将提高基于这两个字段组合的查询效率。
3. 使用ALTER TABLE语句在INFORMATION表的id字段上创建了一个名为index_id的唯一性索引,按升序排列:
```sql
ALTER TABLE information ADD INDEX index_id(id ASC);
```
4. 删除了USERLOGIN表上的index_userlogin索引:
```sql
CREATE INDEX index_userlogin ON userlogin(id(4));
DROP INDEX index_userlogin ON userlogin;
```
首先创建了索引,然后执行删除操作。
5. 查看USERLOGIN表的结构:
```sql
SHOW CREATE TABLE userlogin;
```
此命令显示表的详细定义,包括索引。
6. 删除了INFORMATION表上的index_name索引:
```sql
DROP INDEX index_name ON information;
```
7. 查看了INFORMATION表的结构:
```sql
SHOW CREATE TABLE information;
```
同样,这个命令用于查看表的详细信息。
接下来,在数据库job下创建了WORKINFO表,包含了id(主键,自增)、Name、Type、Address、Wages、Contents和extra字段,并要求在id字段上创建一个名为index_id的唯一性索引,降序排列。
1. 在WORKINFO表的name字段创建长度为10的索引index_name:
```sql
CREATE INDEX index_name ON workinfo(name(10));
```
2. 使用ALTER TABLE语句在type和address字段上创建名为index_t的索引:
```sql
ALTER TABLE workinfo ADD INDEX index_t(type, address);
```
3. 将WORKINFO表的存储引擎更改为MyISAM,以支持降序索引:
```sql
ALTER TABLE workinfo ENGINE=MYISAM;
```
MyISAM引擎支持对整列进行降序索引,而InnoDB不支持。
4. 在extra字段上创建名为index_ext的全文索引:
```sql
ALTER TABLE workinfo ADD FULLTEXT INDEX index_ext(extra);
```
全文索引用于全文搜索,可以高效地搜索文本字段中的内容。
实验的目的是理解和熟练掌握索引的创建、管理和维护,包括单列索引、多列索引、唯一性索引以及全文索引的使用。通过这些操作,可以提高数据库查询的效率,优化数据访问性能。同时,了解不同存储引擎对索引的支持情况也是数据库管理的重要部分。
评论10
最新资源