• ADADADADAD

    mysql数据库中怎么创建索引[ mysql数据库 ]

    mysql数据库 时间:2024-11-29 09:49:39

    作者:文/会员上传

    简介:

    案例:创建数据库index_test,按照下表的结构在index_test数据库中创建两个数据表test_table1和test_table2,并按照操作过程完成对数据表的基本操作。(1)登录MySQL数据库(2)创建

    以下为本文的正文内容,内容仅供参考!本站为公益性网站,复制本文以及下载DOC文档全部免费。

    案例:创建数据库index_test,按照下表的结构在index_test数据库中创建两个数据表test_table1和test_table2,并按照操作过程完成对数据表的基本操作。

    (1)登录MySQL数据库
    (2)创建数据库index_test
    (3)创建表test_table1
    (4)创建表test_table2,存储引擎为MyISAM
    (5)使用alter table 语句在表test_table2的birth字段上建立名称为ComDateIdx的普通索引
    (6)使用alter table语句在表test_table2的id字段上添加名称为UniqIdx2的唯一索引,并以降序排列
    (7)使用create index 在firstname、middlename和lastname三个字段上建立名称为MultiColidx2的组合索引
    (8)使用create index在title字段上建立名称为FTidx的全文索引
    (9)使用alter table语句删除表test_table1中名称为Uniqidx的唯一索引
    (10)使用drop index语句删除表test_table2中名称为MultiColidx2的组合索引
    几个注意点


    (1)登录MySQL数据库
    C:\Users\Hudie>mysql-hlocalhost-uroot-pEnterpassword:*******
    (2)创建数据库index_test
    mysql>createdatabaseindex_test;QueryOK,1rowaffected(0.06sec)mysql>useindex_test;Databasechanged
    (3)创建表test_table1
    mysql>createtabletest_table1->(->idintnotnullprimarykeyauto_increment,->namechar(100)notnull,->addresschar(100)notnull,->descriptionchar(100)notnull,->uniqueindexuniqidx(id),->indexMultiColidx(name(20),address(30)),->indexComidx(description(30))->);QueryOK,0rowsaffected(0.11sec)mysql>showcreatetabletest_table1\G***************************1.row***************************Table:test_table1CreateTable:CREATETABLE`test_table1`(`id`int(11)NOTNULLAUTO_INCREMENT,`name`char(100)NOTNULL,`address`char(100)NOTNULL,`description`char(100)NOTNULL,PRIMARYKEY(`id`),UNIQUEKEY`uniqidx`(`id`),KEY`MultiColidx`(`name`(20),`address`(30)),KEY`Comidx`(`description`(30)))ENGINE=InnoDBDEFAULTCHARSET=utf8mb4COLLATE=utf8mb4_0900_ai_ci1rowinset(0.06sec)

    可以看到在test_table表中成功创建了3个索引,分别是在id字段上名称为uniqidx的唯一索引;在name和address字段上的组合索引;在description字段上长度为30的普通索引。

    (4)创建表test_table2,存储引擎为MyISAM
    mysql>createtabletest_table2->(->idintnotnullprimarykeyauto_increment,->firstnamechar(100)notnull,->middlenamechar(100)notnull,->lastnamechar(100)notnull,->birthdatenotnull,->titlechar(100)null->)ENGINE=MyISAM;QueryOK,0rowsaffected(0.07sec)
    (5)使用alter table 语句在表test_table2的birth字段上建立名称为ComDateIdx的普通索引
    mysql>altertabletest_table2addindexComDateidx(birth);QueryOK,0rowsaffected(0.13sec)Records:0Duplicates:0Warnings:0
    (6)使用alter table语句在表test_table2的id字段上添加名称为Uniqidx2的唯一索引
    mysql>altertabletest_table2adduniqueindexUniqidx(id);QueryOK,0rowsaffected(0.11sec)Records:0Duplicates:0Warnings:0
    (7)使用create index 在firstname和middlename两个字段上建立名称为 MultiColidx2的组合索引
    mysql>createindexMultiColidx2ontest_table2(firstname,middlename);QueryOK,0rowsaffected(0.12sec)Records:0Duplicates:0Warnings:0
    (8)使用create index在title字段上建立名称为FTidx的全文索引
    mysql>createfulltextindexftidxontest_table2(title);QueryOK,0rowsaffected(0.13sec)Records:0Duplicates:0Warnings:0
    (9)使用alter table语句删除表test_table1中名称为Uniqidx的唯一索引
    mysql>altertabletest_table1dropindexuniqidx;QueryOK,0rowsaffected(0.09sec)Records:0Duplicates:0Warnings:0
    (10)使用drop index语句删除表test_table2中名称为MultiColidx2的组合索引
    mysql>dropindexMultiColidx2ontest_table2;QueryOK,0rowsaffected(0.12sec)Records:0Duplicates:0Warnings:0
    几个注意点:

    1.索引对数据库的性能如此重要,如何使用它?

      如果索引列较少,则需要的磁盘空间和维护开销都较少。

      如果在一个大表上创建了多种组合索引,索引文件也会膨胀很快。另外索引较多,可覆盖更多的查询。

      尝试添加、删除、修改索引,不影响数据库架构或应用程序设计。

      2.尽量使用短索引

        对字符串类型的字段进行索引,如果可能应该指定一个前缀长度。例如,有一个char(255)的列,如果在前 10或30个字符内多数值是唯一的,就不需要对整个列进行索引。

        短索引不仅可以提高查询速度,也能节省磁盘空间、减少I/O操作。

    mysql数据库中怎么创建索引.docx

    将本文的Word文档下载到电脑

    推荐度:

    下载