首页 > 数据库技术 > 详细

数据库应用(六): Ubuntu 下 MySQL 视图和索引

时间:2020-09-13 15:10:25      阅读:55      评论:0      收藏:0      [点我收藏+]

视图和索引

  

  索引(Index)是影响数据性能的重要因素之一,设计高效的、合理的索引可以显著提高数据信息的查询速度和应用程序的性能。

  视图(View)是一个存储指定查询语句的虚拟表,视图中数据来源于由定义视图所引用的表,并且能够实现动态引用,即表中数据发生变化,视图中的数据随之变化

 

  理解索引

    MySQL的索引是为了加速对数据进行检索而创建的一种分散的、物理的数据结构。索引包含从表或视图中一个或多个列生成的键,以及映射到指定数据行的存储位置指针。

    索引是依赖于表建立的,提供了数据库中编排表中数据的内部方法。表的存储由两部分组成,一部分是表的数据页面,另一部分是索引页面。索引就存放在索引页面上

    

  索引的分类

    1. 普通索引
    2. 唯一索引
    3. 全文索引
    4. 单列索引
    5. 多列索引
    6. 空间索引      

 

  创建索引的方式

    1.   创建表的时候创建索引
      CREATE TABLE 表名(字段名 数据类型[完整性约束条件],
                           字段名 数据类型[完整性约束条件],
                           ......
               字段名 数据类型
              [UNIQUE|FULLTEXT|SPATIAL] INDEX|KEY
                                           [别名] (字段名1 [(长度)]) [ASC|DESC])
                                         );

      例: 在t1表中id字段上建立索引

      技术分享图片

      例:创建一个表名为t2的表,在表中的id 字段上建立索引名为unique_id的唯一性索引,并且按照升序排序技术分享图片

      例: 创建一个表名为t3的表,在表中的name字段上建立索引名为fulltext_name的全文索引技术分享图片

      例:创建一个表名为t4的表,在表中的name字段上建立索引名为single_name的单列索引技术分享图片

      例:创建一个表名为t6的表,在表中的id和name字段上建立索引名为multi的多列索引技术分享图片

       

    2.   使用CREATE INDEX 语句在已经存在的表上创建索引
      CREATE [UNIQUE|FULLTEXT] INDEX 索引名
       ON 表名 (字段名 [(长度)] [ASC|DESC]);

      在book表中的bookid字段上建立普通索引 技术分享图片

      在book表中的bookid字段上建立唯一性索引 技术分享图片

      在book表中的comment字段上建立单列索引 技术分享图片

      在book表中的authors和info字段上建立多列索引 技术分享图片

    3.   使用ALTER TABLE语句在已经存在表上创建索引
      ALTER TABLE 表名 ADD [UNIQUE|FULLTEXT]  INDEX
                                          索引名 (字段名 [(长度)] [ASC|DESC]);

 

       在表中的bookid字段上创建普通索引

        技术分享图片

 

 

 

 

       在表中的bookid字段上创建唯一索引

        技术分享图片

 

 

 

       在book表中的comment字段上建立单列索引

        技术分享图片

 

 

 

        技术分享图片

 

 

 

  删除索引

    ALTER TABLE 表名 DROP  primary  key;

    ALTER TABLE 表名 DROP INDEX 索引名;

    ALTER TABLE 表名 DROP FOREIGN KEY fk_symbol;

    DROP INDEX 索引名 ON 表名;

 

 

  视图

  创建视图

CREATE VIEW  view_name[(column_list)]
AS  SELECT_statement
[WITH  CHECK  OPTION]

  在student表上创建view_stu视图

    技术分享图片

 

 

   查看视图

DESCRIBE 视图名;
SHOW TABLE STATUS LIKE 视图名
SHOW CREATE VIEW 视图名;

 

  修改视图

CREATE [OR REPLACE ]VIEW view_name [(column_list)]
AS SELECT_statement
[WITH CHECK OPTION]

  使用CREATE OR REPLACE VIEW 语句修改view_stu视图

  技术分享图片

 

 

   使用ALTER语句修改视图

  技术分享图片

 

   更新视图

    使用UPDATE语句更新视图

      技术分享图片

 

 

 

  学习不易,诸君共勉!

技术分享图片

 

数据库应用(六): Ubuntu 下 MySQL 视图和索引

原文:https://www.cnblogs.com/daker-code/p/13661148.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!