精华内容
下载资源
问答
  • #索引存在硬盘中的, #索引的功能, 1.可以加速查询 2.但是他会降低写入和删除的速度 所以能乱加索引 总结二 1 最左前缀匹配原则 2设置的索引,它的字段中的内容占空间尽可能要小 3设置的所以要...

    MySQL索引管理

    总结

    #索引是存在硬盘中的,
    #索引的功能,
       1.可以加速查询
        2.但是他会降低写入和删除的速度
        所以不能乱加索引

    总结二

    1 最左前缀匹配原则
    2设置的索引,它的字段中的内容占空间尽可能要小
    3设置的所以要区分度尽量高,区分度越高,查找速度越快
    
    
    能够帮助加速查找的方式是加上适合的索引:
     (区分度高, 能够缩小范围的字段)

    组合索引总结

    1.写索引时一定要把区分度最高的放在最左位置
    2.用sql 语句查找数据时,一定要把区分度最高的(即索引最左边的内容)放到最左边

    一 功能

    #1. 索引的功能就是加速查找
    #2. mysql中的primary key,unique,联合唯一也都是索引,这些索引除了加速查找以外,还有约束的功能

    二 MySQL常用的索引

    普通索引INDEX:加速查找
    
    唯一索引:
        -主键索引PRIMARY KEY:加速查找+约束(不为空、不能重复)
        -唯一索引UNIQUE:加速查找+约束(不能重复)
    
    联合索引:
        -PRIMARY KEY(id,name):联合主键索引
        -UNIQUE(id,name):联合唯一索引
        -INDEX(id,name):联合普通索引
    举个例子来说,比如你在为某商场做一个会员卡的系统。
    
    这个系统有一个会员表
    有下列字段:
    会员编号 INT
    会员姓名 VARCHAR(10)
    会员身份证号码 VARCHAR(18)
    会员电话 VARCHAR(10)
    会员住址 VARCHAR(50)
    会员备注信息 TEXT
    
    那么这个 会员编号,作为主键,使用 PRIMARY
    会员姓名 如果要建索引的话,那么就是普通的 INDEX
    会员身份证号码 如果要建索引的话,那么可以选择 UNIQUE (唯一的,不允许重复)
    
    #除此之外还有全文索引,即FULLTEXT
    会员备注信息 , 如果需要建索引的话,可以选择全文搜索。
    用于搜索很长一篇文章的时候,效果最好。
    用在比较短的文本,如果就一两行字的,普通的 INDEX 也可以。
    但其实对于全文搜索,我们并不会使用MySQL自带的该索引,而是会选择第三方软件如Sphinx,专门来做全文搜索。
    
    #其他的如空间索引SPATIAL,了解即可,几乎不用
    各种索引的应用场景

    三 索引的两大类型hash与btree

    #我们可以在创建上述索引的时候,为其指定索引类型,分两类
    hash类型的索引:查询单条快,范围查询慢
    btree类型的索引:b+树,层数越多,数据量指数级增长(我们就用它,因为innodb默认支持它)
    
    #不同的存储引擎支持的索引类型也不一样
    InnoDB 支持事务,支持行级别锁定,支持 B-tree、Full-text 等索引,不支持 Hash 索引;
    MyISAM 不支持事务,支持表级别锁定,支持 B-tree、Full-text 等索引,不支持 Hash 索引;
    Memory 不支持事务,支持表级别锁定,支持 B-tree、Hash 等索引,不支持 Full-text 索引;
    NDB 支持事务,支持行级别锁定,支持 Hash 索引,不支持 B-tree、Full-text 等索引;
    Archive 不支持事务,支持表级别锁定,不支持 B-tree、Hash、Full-text 等索引;        

    四 创建/删除索引的语法

    #方法一:创建表时
          CREATE TABLE 表名 (
                    字段名1  数据类型 [完整性约束条件…],
                    字段名2  数据类型 [完整性约束条件…],
                    [UNIQUE | FULLTEXT | SPATIAL ]   INDEX | KEY
                    [索引名]  (字段名[(长度)]  [ASC |DESC]) 
                    );
    
    
    #方法二:CREATE在已存在的表上创建索引
            CREATE  [UNIQUE | FULLTEXT | SPATIAL ]  INDEX  索引名 
                         ON 表名 (字段名[(长度)]  [ASC |DESC]) ;
    
    
    #方法三:ALTER TABLE在已存在的表上创建索引
            ALTER TABLE 表名 ADD  [UNIQUE | FULLTEXT | SPATIAL ] INDEX
                                 索引名 (字段名[(长度)]  [ASC |DESC]) ;
                                 
    #删除索引:DROP INDEX 索引名 ON 表名字;
    #方式一
    create table t1(
        id int,
        name char,
        age int,
        sex enum('male','female'),
        unique key uni_id(id),
        index ix_name(name) #index没有key
    );
    
    
    #方式二
    create index ix_age on t1(age);
    
    #方式三
    alter table t1 add index ix_sex(sex);
    
    #查看
    mysql> show create table t1;
    | t1    | CREATE TABLE `t1` (
      `id` int(11) DEFAULT NULL,
      `name` char(1) DEFAULT NULL,
      `age` int(11) DEFAULT NULL,
      `sex` enum('male','female') DEFAULT NULL,
      UNIQUE KEY `uni_id` (`id`),
      KEY `ix_name` (`name`),
      KEY `ix_age` (`age`),
      KEY `ix_sex` (`sex`)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1
    示范

    三 在表中已经存在大量数据的前提下,为某个字段段建立索引,建立速度会很慢

    四 在索引建立完毕后,以该字段为查询条件时,查询速度提升明显

    PS:

    1. mysql先去索引表里根据b+树的搜索原理很快搜索到id等于333333333的记录不存在,IO大大降低,因而速度明显提升

    2. 我们可以去mysql的data目录下找到该表,可以看到占用的硬盘空间多了

    3. 需要注意,如下图

     

    五 总结

    #1. 一定是为搜索条件的字段创建索引,比如select * from s1 where id = 333;就需要为id加上索引
    
    #2. 在表中已经有大量数据的情况下,建索引会很慢,且占用硬盘空间,建完后查询速度加快
    比如create index idx on s1(id);会扫描表中所有的数据,然后以id为数据项,创建索引结构,存放于硬盘的表中。
    建完以后,再查询就会很快了。
    
    #3. 需要注意的是:innodb表的索引会存放于s1.ibd文件中,而myisam表的索引则会有单独的索引文件table1.MYI
    
    MySAM索引文件和数据文件是分离的,索引文件仅保存数据记录的地址。而在innodb中,表数据文件本身就是按照B+Tree(BTree即Balance True)组织的一个索引结构,
    这棵树的叶节点data域保存了完整的数据记录。这个索引的key是数据表的主键,因此innodb表数据文件本身就是主索引。 因为inndob的数据文件要按照主键聚集,所以innodb要求表必须要有主键(Myisam可以没有),如果没有显式定义,则mysql系统会自动选择一个可以唯一标识数据记录的列作为主键,
    如果不存在这种列,则mysql会自动为innodb表生成一个隐含字段作为主键,这字段的长度为6个字节,类型为长整型.

     

    七 正确使用索引

    一 索引未命中

    并不是说我们创建了索引就一定会加快查询速度,若想利用索引达到预想的提高查询速度的效果,我们在添加索引时,必须遵循以下问题

    1 范围问题,或者说条件不明确,条件中出现这些符号或关键字:>、>=、<、<=、!= 、between...and...、like、

    大于号、小于号

    不等于!=

    between ...and...

    like

    2 尽量选择区分度高的列作为索引,区分度的公式是count(distinct col)/count(*),表示字段不重复的比例,比例越大我们扫描的记录数越少,唯一键的区分度是1,而一些状态、性别字段可能在大数据面前区分度就是0,那可能有人会问,这个比例有什么经验值吗?使用场景不同,这个值也很难确定,一般需要join的字段我们都要求是0.1以上,即平均1条扫描10条记录

     分析原因

    3 =和in可以乱序,比如a = 1 and b = 2 and c = 3 建立(a,b,c)索引可以任意顺序,mysql的查询优化器会帮你优化成索引可以识别的形式

    4 索引列不能参与计算,保持列“干净”,比如from_unixtime(create_time) = ’2014-05-29’就不能使用到索引,原因很简单,b+树中存的都是数据表中的字段值,但进行检索时,需要把所有元素都应用函数才能比较,显然成本太大。所以语句应该写成create_time = unix_timestamp(’2014-05-29’)

    5 and/or

    复制代码
    #1、and与or的逻辑
        条件1 and 条件2:所有条件都成立才算成立,但凡要有一个条件不成立则最终结果不成立
        条件1 or 条件2:只要有一个条件成立则最终结果就成立
    
    #2、and的工作原理
        条件:
            a = 10 and b = 'xxx' and c > 3 and d =4
        索引:
            制作联合索引(d,a,b,c)
        工作原理:
            对于连续多个and:mysql会按照联合索引,从左到右的顺序找一个区分度高的索引字段(这样便可以快速锁定很小的范围),加速查询,即按照d—>a->b->c的顺序
    
    #3、or的工作原理
        条件:
            a = 10 or b = 'xxx' or c > 3 or d =4
        索引:
            制作联合索引(d,a,b,c)
            
        工作原理:
            对于连续多个or:mysql会按照条件的顺序,从左到右依次判断,即a->b->c->d
    复制代码

    在左边条件成立但是索引字段的区分度低的情况下(name与gender均属于这种情况),会依次往右找到一个区分度高的索引字段,加速查询

    经过分析,在条件为name='egon' and gender='male' and id>333 and email='xxx'的情况下,我们完全没必要为前三个条件的字段加索引,因为只能用上email字段的索引,前三个字段的索引反而会降低我们的查询效率

    6 最左前缀匹配原则(详见第八小节),非常重要的原则,对于组合索引mysql会一直向右匹配直到遇到范围查询(>、<、between、like)就停止匹配(指的是范围大了,有索引速度也慢),比如a = 1 and b = 2 and c > 3 and d = 4 如果建立(a,b,c,d)顺序的索引,d是用不到索引的,如果建立(a,b,d,c)的索引则都可以用到,a,b,d的顺序可以任意调整。

     二 其他注意事项

    - 避免使用select *
    - count(1)或count(列) 代替 count(*)
    - 创建表时尽量时 char 代替 varchar
    - 表的字段顺序固定长度的字段优先
    - 组合索引代替多个单列索引(经常使用多个条件查询时)
    - 尽量使用短索引
    - 使用连接(JOIN)来代替子查询(Sub-Queries)
    - 连表时注意条件类型需一致
    - 索引散列值(重复少)不适合建索引,例:性别不适合

    八 联合索引与覆盖索引

    一 联合索引

    联合索引时指对表上的多个列合起来做一个索引。联合索引的创建方法与单个索引的创建方法一样,不同之处在仅在于有多个索引列,如下

    mysql> create table t(
        -> a int,
        -> b int,
        -> primary key(a),
        -> key idx_a_b(a,b)
        -> );
    Query OK, 0 rows affected (0.11 sec)

     那么何时需要使用联合索引呢?在讨论这个问题之前,先来看一下联合索引内部的结果。从本质上来说,联合索引就是一棵B+树,不同的是联合索引的键值得数量不是1,而是>=2。接着来讨论两个整型列组成的联合索引,假定两个键值得名称分别为a、b如图

     

    可以看到这与我们之前看到的单个键的B+树并没有什么不同,键值都是排序的,通过叶子结点可以逻辑上顺序地读出所有数据,就上面的例子来说,即(1,1),(1,2),(2,1),(2,4),(3,1),(3,2),数据按(a,b)的顺序进行了存放。

    因此,对于查询select * from table where a=xxx and b=xxx, 显然是可以使用(a,b) 这个联合索引的,对于单个列a的查询select * from table where a=xxx,也是可以使用(a,b)这个索引的。

    但对于b列的查询select * from table where b=xxx,则不可以使用(a,b) 索引,其实你不难发现原因,叶子节点上b的值为1、2、1、4、1、2显然不是排序的,因此对于b列的查询使用不到(a,b) 索引

    联合索引的第二个好处是在第一个键相同的情况下,已经对第二个键进行了排序处理,例如在很多情况下应用程序都需要查询某个用户的购物情况,并按照时间进行排序,最后取出最近三次的购买记录,这时使用联合索引可以帮我们避免多一次的排序操作,因为索引本身在叶子节点已经排序了,如下

    博客引子老男孩最帅的老师egon 原创博客 http://www.cnblogs.com/linhaifeng/articles/7274563.html  如有合作意向请联系老男孩教育 

    转载于:https://www.cnblogs.com/wangkun122/p/8066887.html

    展开全文
  • 我想添加一个外键给我的flightschedule表,但它失败了,但我知道为什么。外键应引用属于主键的tblAircraft表中的txtAC_tag属性! 因此,tblAircraft被索引(主键...缺少索引为contraint BUT索引存在这里是我的表的...

    我想添加一个外键给我的flightschedule表,但它失败了,但我不知道为什么。外键应引用属于主键的tblAircraft表中的txtAC_tag属性! 因此,tblAircraft被索引(主键是由idAC和txtAC_tag组成的组合键 - >组合主键是否成问题?)和属性的数据类型匹配。MySQL错误1822:无法添加外键约束;缺少索引为contraint BUT索引存在

    这里是我的表的定义键和外键声明:

    create table if not exists tblAircrafts(

    idAC int not null auto_increment,

    txtAC_tag varchar(255) not null,

    txtAC_type varchar(255) not null,

    primary key(idAC, txtAC_tag));

    create table if not exists tblFlightSchedule(

    ID int not null auto_increment,

    datDate date,

    txtFrom varchar(255),

    txtTo varchar(255),

    txtFlight varchar(255),

    numFlight_time_decimal decimal(4,2),

    txtAC_tag varchar(255) not null,

    txtAC_type varchar(255) not null,

    numSeatCapacity int unsigned,

    numLoad int unsigned, -- auslastung

    numDirt decimal(20,19),

    numTotalFlightTime decimal(50,5),

    numCumDirt decimal(20,15),

    primary key(ID));

    alter table tblflightschedule

    add foreign key(txtAC_tag) references tblaircrafts(txtAC_tag);

    这里是错误消息:

    Error Code: 1822. Failed to add the foreign key constaint. Missing index for constraint '' in the referenced table 'tblaircrafts'

    有什么建议?我很感激您能给我的任何帮助,谢谢!

    展开全文
  • 索引

    2021-01-27 09:21:34
    索引是一种特殊的文件,包含着对数据表里所有记录的引用指针。可以对表中的一列或多列创建索引,并指定索引的类型,各类索引有各自的数据结构实现 事务的特性: 原子性:所有语句要么全部成功,要么全部成功,能...

    索引是一种特殊的文件,包含着对数据表里所有记录的引用指针。可以对表中的一列或多列创建索引,并指定索引的类型,各类索引有各自的数据结构实现

    要考虑对数据库表的某列或某几列创建索引,需要考虑以下几点:
    数据量较大,且经常对这些列进行条件查询。
    该数据库表的插入操作,及对这些列的修改操作频率较低。
    索引会占用额外的磁盘空间。
    满足以上条件时,考虑对表中的这些字段创建索引,以提高查询效率。
    反之,如果非条件查询列,或经常做插入、修改操作,或磁盘空间不足时,不考虑创建索引。

    事务的特性:
    原子性:所有语句要么全部成功,要么全部不成功,不能部分成功

    持久性:当一个事物提交之后,数据库状态永远发生了改变,数据已经更新到硬盘

    一致性:事物提交前后,永远只可能存在事物提交前的状态和事物提交后的状态,从一个一致性的状态到另一个一致性状态,而不可能出现中间的过程态

    隔离性:事物的隔离性,基于原子性和一致性,因为事物是原子化,量子化的,所以,事物可以有多个原子包的形式并发执行,但是,每个事物互不干扰

    进行数据库提交操作时使用事务(Transaction)是为了保证数据一致性

    事务日志用于保存对数据的更新操作,
    数据库提交的数据更新都有日志记录,可以保证出现问题时有信息可以追踪

    SQL语句性能分析的关键字是explain

    展开全文
  • 之前,用过maven管理项目的童鞋都知道本地会有一个${User_... 原因是因为maven中的本地仓库的index索引没有更新,导致在eclipse的maven插件中搜索到。 解决方案: 在eclipse中打开菜单 window-&gt; show ...
    之前,用过maven管理项目的童鞋都知道本地会有一个${User_Home}.m2/repository仓库 是用来存放jar包的地方。但是,在eclipse中的maven仓库中 搜索不到本地仓库中的jar包。

      原因是因为maven中的本地仓库的index索引没有更新,导致在eclipse的maven插件中搜索不到。

      解决方案:

      在eclipse中打开菜单 window-> show view –> other –> Maven -> maven repositories

      打开之后,选择local repositories –> local repository ,右击,选择Build index.


    新完索引之后,在通过右键单击pom.xml文件选择maven –> add dependency 或者是打开pom.xml文件,选择dependencies –>add 时,就可以搜索到本地仓库的jar包了。


    展开全文
  • Mysql索引

    2021-05-03 21:56:03
    一般来说,索引本身也很大,可能全部存在内存中,因此索引往往以索引文件的方式存储在磁盘上。 我们平时所说的索引,一般都指B树(多路搜索树)组织的索引。其中聚集索引、复合索引、前缀索引、唯一索引都是使用B+...
  • SQL索引

    2020-03-30 16:46:07
    聚集索引存储记录是物理上连续存在,而非聚集索引是逻辑上的连续,物理存储并连续。 聚集索引一个表只能有一个,而非聚集索引一个表可以存在多个。 唯一索引 能够保证索引键中包含重复的值,从而使表中的每一行...
  • 2. 分析 indexOf的源码会发现,如果想要查找的对象引用为null,也可以得到该对象引用索引,并会抛出异常。说明两个类都可以存放null引用。 3. 如果集合中存在对象引用o,则返回该对象的索引值;否则,返回-1
  • ---- 人们在使用SQL时往往会陷入一个误区,...笔者在工作实践中发现,不良的SQL往往来自于恰当的索引设计、充份的连接条件和可优化的where子句。在对它们进行适当的优化后,其运行速度有了明显地提高!下面我...
  • MsgBox("不存在该时刻的文件,请重新选择", MsgBoxStyle.OkOnly + MsgBoxStyle.Exclamation, "提示") Exit Sub End If Next Next Catch ex As Exception MsgBox("查找文件异常:" & vbCrLf & "发生异常:" & ...
  • MySQL-索引

    2020-10-17 23:52:04
    索引是一种特殊的数据结构(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针。更通俗的说,数据库索引好比是一本书前面的目录,能加快数据库的查询速度。注:一般数据库默认...
  •  innodb的次索引指向对主键的引用 (聚簇索引)  myisam的次索引和主索引 都指向物理行(非聚簇索引)  聚簇索引是对磁盘上实际数据重新组织以按指定的一个或多个列的值排序的算法。特点是存储数据的顺序和索引...
  • mysql 索引区别

    2016-09-18 19:19:22
    一般索引与唯一索引: 唯一性索引unique index和...主键是特殊的索引,只不过它允许为空,并且在一张表里只能声明一组列为主键,主键可以被外键引用,mysql等数据库一般都自动给主键列建立索引来优化查询
  • 覆盖查询(coverng query)是指其引用的所有列均能在非聚集索引中找到的查询。这个方案经常会带来出众的查询性能,因为SQL Server需要从聚集索引或堆中检索实际的数据——它只需要读取在非聚集索引中存储的数据。...
  • 索引失效的情况

    2019-08-04 10:39:55
    索引并不是时时都会生效的,比如以下几种情况,将导致索引失效: ...2、存在索引列的数据类型隐形转换,则用索引,比如列类型是字符串,那一定要在条件中将数据使用引号引用起来,否则使用索引(就是什么类型我...
  • Mysql_添加索引

    2019-09-18 09:47:49
    9.1 索引简介 索引是一个单独的存在磁盘上的数据结构,他们包含着对数据表列的所有记录的引用的指针,使用索引可以... 索引是在存储引擎上实现的,每种存储引擎的索引不一定完全相同,包括索引的类型及长度 MySql:My...
  • 索引的存储结构

    2015-03-11 12:13:00
    下半部分是表中有索引,这里就出现了B-Tree结构,索引的根级会引用索引的下一级,直到索引的最后一级,这一级引用的对象是RID(当表中不存在聚集索引时,RID会指向每一行数据存储位置,RID的字段长度为16字节)或聚集...
  • 主键和唯一索引区别

    2019-03-06 15:06:02
    1.主键为一种约束,唯一索引为一种...4.主键可以被其他表引用,而唯一索引不可以; 5.一个表最多只能创建一个主键,而可以创建多个唯一索引; 6.主键和索引都是键,主键是逻辑键,索引为物理键,即主键不实际存在。 ...
  • 主键逻辑存在,相当于一本书的页码,允许重复和null。索引物理存在,相当于一本书的目录,可以重复。这篇文章主要介绍MySQL 主键与索引的联系与区别,使用mysql的朋友可以看下关系数据库依赖于主键,它是数据库...
  • MySQL高级之索引

    2021-04-07 06:48:03
    B+tree非叶子节点保存数据相关信息,只保存关键字和子节点的引用,所以一个节点可以保存更多的关键字,磁盘一次可加载更多的关键字,更容易定位到查询数据。 扫表能力强 B+tree关键字对应的数据都保存在叶子...
  • C# 索引

    2013-03-24 11:44:00
    所谓索引器就是一类特殊的属性,通过它们你就可以像引用数组一样引用自己的类。索引器非常类似于我们前面讲到的属性,但索引器可以有参数列表,且只能作用在实例对象上,而能在类上直接作用。 索引器和属性有点...
  • 大多数web应用在访问一个不存在的页面时返回404 Not Found响应码,有一些是返回200 OK,服务端返回索引或者一个错误页面。如果响应码200被接收,页面将会被学习,当响应404时,一个坏的链接/引用可能被学习。 第一个...
  • 3、存在索引列的数据类型隐形转换,则用索引,比如列类型是字符串,那一定要在条件中将数据使用引号引用起来,否则索引失效。 4、where 子句里对索引列上有数学运算,用索引。 5、where 子句里对有索引列...
  • LeetCode 274 H-Index (H索引

    千次阅读 2016-06-24 15:24:17
    根据维基百科对于h-index的定义:“一个科学家有索引h,如果他或他的N篇论文至少存在h个相互引用,而且其他的N-h篇论文相互引用次数高于h。例如,给定citations = [3, 0, 6, 1, 5],这意味着研究者总共有5篇论文,...
  • MySQL索引失效的情况

    2019-11-20 20:02:16
    1.条件中有or,且or两端存在不不包含索引的字段; 2.Like查询以%开头; 3.隐性转换——如果列类型是字符串,那一定要在条件中将数据使用引号引用起来,否则使用索引; 4.在MYSQL使用等于(<,>,!=)的...
  • 场景:引用的jar架包 不存在于 Maven 的中央库 解决方法: 使用maven 构建本地索引 1.使用maven从源码安装 cd 到源码目录 mvn clean install 2.使用maven从jar文件安装 mvn install:install-file -DgroupId=包名 -...
  • 主键和唯一索引的区别

    千次阅读 2018-03-01 00:00:54
    1.主键为一种约束,唯一索引为一种...4.主键可以被其他表引用,而唯一索引不可以;5.一个表最多只能创建一个主键,而可以创建多个唯一索引;6.主键和索引都是键,主键是逻辑键,索引为物理键,即主键不实际存在。 ...
  • mysql 索引本质解析

    2020-03-03 20:54:13
    索引时帮助mysql高效获取数据的排好序的数据结构 索引数据结构: 二叉树, 红黑树, Hash表...假设索引用二叉树的数据结构进行存储,每插入一条数据,同时会将索引的字段维护到二叉树. 二叉树的节点里是以key-value格式进...
  • 如果访问数组元素的时候,索引编号并不存在,那么将会发生 数组索引越界异常 ArrayIndexOutOfBoundsException 原因:索引编号写错了。 解决:修改成为存在的正确索引编号。 所有的引用类型变量,都可以赋值为一个...
  • 数据库中主键和唯一索引的区别?

    千次阅读 2018-07-28 16:51:33
    1.主键为一种约束,唯一索引为一种索引,本质上就不同。 2.主键在表中只能有一个,唯一索引可以...5.主键可以被其它表引用,唯一索引不能。 6.主键和索引都是键,主键是逻辑键,索引为物理键,即主键不实际存在。...
  • 数据库:视图和索引

    千次阅读 多人点赞 2018-10-11 19:36:03
    目录 一、视图 1.什么是视图? 2.为什么使用视图?...视图是一张虚拟表,并在数据库中以存储数据值集的形式存在。在引用过程中依据基表动态生成。 2.为什么使用视图? 安全:有的数据是需要保密的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 600
精华内容 240
关键字:

引用索引不存在