zoukankan      html  css  js  c++  java
  • 数据库归纳总结

    索引:提高数据库的性能,索引是物美价廉的东西了。不用加内存,不用改程序,不用调sql,只要执行正确的 create index ,查询速度就可能提高成百上千倍。

    但是天下没有免费的午餐,查询速度的提高是以插入、更 新、删除的速度为代价的,这些写操作,增加了大量的IO。所以它的价值,在于提高一个海量数据的检索速度。

    常见索引分为:

    主键索引(primary key)

    唯一索引(unique)

    普通索引(index)

    全文索引(fulltext)

    索引的说明:

    占用磁盘空间

    当添加一条记录,除了添加到表中,还要维护二叉树,速度有影响,但不大。

    当我们添加一个索引,不能够解决所有查询问题,需要分别给字段建立索引;例如 select * from EMP where ename='abcdef';

    索引是以空间换时间

    创建索引:

    主键索引:

    create table user1(id int primary key, name varchar(30));

    create table user2(id int, name varchar(30), primary key(id));

    alter table user3 add primary key(id);

    主键索引的特点:

    一个表中,最多有一个主键索引,当然可以使符合主键

    主键索引的效率高(主键不可重复)

    创建主键索引的列,它的值不能为null,且不能重复(使数据具有唯一性)

    主键索引的列基本上是int

    唯一索引创建:

    create table user4(id int primary key, name varchar(30) unique);

    create table user5(id int primary key, name varchar(30), unique(name));

    alter table user6 add unique(name);

    唯一索引的特点:

    一个表中,可以有多个唯一索引

    查询效率高

    如果在某一列建立唯一索引,必须保证这列不能有重复数据

    如果一个唯一索引上指定not null,等价于主键索引

    普通索引的创建:

    create table user8(id int primary key, name varchar(20), email varchar(30), index(name));

    create table user9(id int primary key, name varchar(20), email varchar(30)); alter table user9 add index(name);

    create index idx_name on user10(name);

    普通索引的特点:

    一个表中可以有多个普通索引,普通索引在实际开发中用的比较多

    如果某列需要创建索引,但是该列有重复的值,那么我们就应该使用普通索引

    索引确实为查询数据带来了许多方便,索引创建原则?

    1、比较频繁作为查询查询条件的字段应该作为索引

    2、唯一性太差的字段不适合单独作为索引,即使它查询条件频繁(比如员工姓名)

    3、更新较为频繁的字段不适合作为索引(比如博客时间)

    4、不会出现在where语句的字段不创建索引(其实和第一个条件差不多)


    查询索引:

    show keys from 表名

    show index from 表名

    desc 表名(简略)

    关于如何删除索引的操作?

    首先得区别你删除的是主键索引还是其他索引

    主键索引的操作:alter+table+表名+drop primary key

    删除其他索引操作:一般其他索引可能在一张表里比较多,因此,我们可以先查询有哪些其他索引,使用show+keys+from+表名,在Keys_name字段选择你要删除的索引

    alter table 表名 drop index 索引名  或者  drop index 索引名 on 表名

  • 相关阅读:
    Plotagraph软件五分钟光速速成傻瓜教程
    QT插件+ROS 2 新建项目
    QT插件+ROS 1 安装配置
    GitHub 优秀的 Android 开源项目 (精品)
    ROS的launch文件
    编写第一个 Shell 脚本
    CMake 入门实战
    ROS 创建服务和请求
    ROS 小乌龟测试
    【转】C++中的虚函数的实现
  • 原文地址:https://www.cnblogs.com/hetaoyuan/p/11403834.html
Copyright © 2011-2022 走看看