• 数据库的索引


      例如我们现在有表employee

      mysql> CREAT TABLE employee(eid INT PRIMARY KEY,

                                          fname VARCHAR(20),

                                          lname VARCHAR(20),

                                          fname_pinyin(40),

                                          lname_pinyin(40),

                                          depart VARCHAR(40),

                                          birth  DATE,

                                          sex  CHAR(1));

    • 未建索引时,当你select时,会进行全表扫描(全件检索)效率很低,创建索引和删除索引,查看本表所有索引的语句如下:

           mysql> CREAT INDEX index_name on tablename(columnname);

       mysql> DROP  index_name;

          mysql> SHOW INDEX;

    • 索引分为clustered indexnon-clustered index   

      一个表仅能有一个clustered index ,在mysql下一般默认会将primary key 设置为clustered index

         如果不想让primary key 成为clustered index 则可以在建表的时候对主键列的描述改为: eid INT PRIMARY KEY NONCLUSTERED

    • 在多个列上一起建的索引为复合索引 

      mysql> CREAT INDEX idx_fuhe on employee(lname_pinyin,fname_pinyin);

    • 在创建索引时加了UNIQUE就是唯一性索引。

      mysql> CREAT UNIQUE INDEX idx_uni on employee(fname_pinyin)

      对索引的唯一性限制就是对该列数据的唯一性限制,当再有新的数据插入,此新数据的该字段和表中已有记录的该字段相同,则插入操作会报错。

      当表中已有重复的数据,则创建唯一性索引会失败

          复合索引也可是唯一性索引,此时只需这几个字段的组合不出现重复项即可

    • 可以使用EXPLAIN 来看看SELECT语句使用索引的情况,尤其注意输出结果中rows的变化,以便来检查所建索引是否合适

       mysql> EXPLAIN SELECT * FROM employee WHERE lname=“wy”

  • 相关阅读:
    【转】zigbee终端无法重连的问题解决
    【转】ZigBee终端入网方式深入分析
    【转译】加入ZigBee联盟,共画物联网的未来
    zigbee 路由节点丢失后清除 该节点的残余网络信息
    【转】ZigBee是如何组网的?
    关于zigbee 网络拓扑节点数量的一点说明
    ZHA profile与ZLL profile的一个例子
    AJAX防重复提交的办法总结
    数组去重的几种方式
    order-image详解
  • 原文地址:https://www.cnblogs.com/ivywenyuan/p/4581839.html
Copyright © 2020-2023  润新知