精华内容
下载资源
问答
  • 4、经常出现在Where子句字段,特别是大表的字段,应该建立索引; 5、索引应该建在选择性高的字段上; 6、索引应该建在小字段上,对于大的文本字段甚至超长字段,不要建索引; 7、复合索引的建立需要进行...


    1、表的主键、外键必须有索引;
    2、数据量超过300的表应该有索引;
    3、经常与其他表进行连接的表,在连接字段上应该建立索引;
    4、经常出现在Where子句中的字段,特别是大表的字段,应该建立索引;
    5、索引应该建在选择性高的字段上;
    6、索引应该建在小字段上,对于大的文本字段甚至超长字段,不要建索引;
    7、复合索引的建立需要进行仔细分析;尽量考虑用单字段索引代替:
    A、正确选择复合索引中的主列字段,一般是选择性较好的字段;
    B、复合索引的几个字段是否经常同时以AND方式出现在Where子句中?单字段查询是否极少甚至没有?如果是,则可以建立复合索引;否则考虑单字段索引;
    C、如果复合索引中包含的字段经常单独出现在Where子句中,则分解为多个单字段索引;
    D、如果复合索引所包含的字段超过3个,那么仔细考虑其必要性,考虑减少复合的字段;
    E、如果既有单字段索引,又有这几个字段上的复合索引,一般可以删除复合索引;
    8、频繁进行数据操作的表,不要建立太多的索引;
    9、删除无用的索引,避免对执行计划造成负面影响;

    转载于:https://www.cnblogs.com/tine/p/9132177.html

    展开全文
  • 1.在数据库查询语句使用别名,让别名和实体类的属性名一一对应 2.使用resultMap。 1.在查询标签引入resultMap的id 2.定义resultMap 代码属性的含义与解释 <id />:此属性表示查询结果集的唯一...

    1.在数据库查询语句中使用别名,让别名和实体类的属性名一一对应

    2.使用resultMap。

    1.在查询标签中引入resultMap的id

    2.定义resultMap

    代码中属性的含义与解释

    <id />:此属性表示查询结果集的唯一标识,非常重要。如果是多个字段为复合唯一约束则定义多个<id />。

    <result />:普通属性(普通字段),即pojo的属性。

    property:表示实体类的属性。

    column:表示数据库的字段名

    type:这个属性传入实体类全路径 

    column和property放在一块儿表示将sql查询出来的字段映射到指定的pojo(实体)类属性上。这样查询到的实体就可以得到值了.

     

     

    展开全文
  • 复合主键:数据库表的主键由两个及以上的字段组成。 例如: CREATE TABLE `asm_device_config_info` ( `asmModel` varchar(32) NOT NULL COMMENT '自助机型号', `deviceType` varchar(32) NOT ...

    复合主键(单表多个主键)

    复合主键:数据库表的主键由两个及以上的字段组成。 

    例如:

    
     
    1. CREATE TABLE `asm_device_config_info` (

    2. `asmModel` varchar(32) NOT NULL COMMENT '自助机型号',

    3. `deviceType` varchar(32) NOT NULL COMMENT '外设类型',

    4. `deviceModel` varchar(32) NOT NULL COMMENT '外设型号',

    5. `deviceFactory` varchar(32) NOT NULL COMMENT '外设厂商',

    6. PRIMARY KEY (`asmModel`,`deviceType`)

    7. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='自助机外围设备配置信息表';

     联合主键(多表多个主键)

    联合主键:多个主键联合形成一个主键的组合。

    当两个数据表是多对多的关系,需要通过两个数据表的主键来组成联合主键,来确定一条记录

    例如:

    
     
    1. CREATE TABLE `student` (

    2. `studentId` varchar(32) NOT NULL COMMENT '学号',

    3. `studentName` varchar(32) NOT NULL COMMENT '姓名',

    4. `studentGender` varchar(32) NOT NULL COMMENT '性别',

    5. `studentAge` int DEFAULT NULL COMMENT '年龄',

    6. PRIMARY KEY (`studentId`)

    7. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='学生信息表';

    
     
    1. CREATE TABLE `course` (

    2. `courseId` varchar(32) NOT NULL COMMENT '课程id',

    3. `courseName` varchar(32) NOT NULL COMMENT '课程名称',

    4. `courseCredit` varchar(32) NOT NULL COMMENT '课程学分',

    5. PRIMARY KEY (`courseId`)

    6. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='课程信息表';

    
     
    1. CREATE TABLE `student_course` (

    2. `id` int AUTO_INCREMENT COMMENT '选课id',

    3. `studentId` varchar(32) NOT NULL COMMENT '学号',

    4. `courseId` varchar(32) NOT NULL COMMENT '课程id',

    5. PRIMARY KEY (`id`)

    6. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='学生选课表';

     

    展开全文
  • goods表,3个字段: id (int,PK) , price (float), name (varchar(20)) buyer表,2个字段: id(int,PK) ,name (varchar(20)) buyRecord表,3个字段:id(int PK), buyerId(int,FK) , goodsId(int,FK) 问题: ...
  • 如何在数据库建立复合主键

    万次阅读 2014-05-29 10:41:05
    (即多个字段同时作为主键)主键是数据库表的一个重要属性,建立主键可以避免表存在完全相同的记录,也就是说主键在一张表的记录值是唯一的。 建立主键两种方法:一种是在数据库提供的GUI环境建立,另一种...
    (即多个字段同时作为主键)主键是数据库表的一个重要属性,建立主键可以避免表中存在完全相同的记录,也就是说主键在一张表中的记录值是唯一的。
    建立主键有两种方法:一种是在数据库提供的GUI环境中建立,另一种是通过SQL语句执行建立,下面分别介绍。
       1.在数据库提供的GUI环境中建立(以SQL7为例)。
    输入表信息后按Ctrl键同时选中多行,然后点上面的主键按钮就行了。
      2.通过SQL语句执行建立。又分两种,一是在建表语句中直接写,二是建表之后更改表结构。
    在建表语句中直接写:
       Create Table 表名 (字段名1 Int Not Null,
                       字段名2 nvarchar(13) Not Null Primary Key (字段名1, 字段名2),
                       字段名3…………
                       字段名N………… )
    建表之后更改表结构:
        CREATE TABLE 表名 (字段名1 Int Not Null,
                          字段名2 nvarchar(13) Not Null
                          字段名3…………
                          字段名N…………)
    GO
    ALTER TABLE 表名 WITH NOCHECK ADD 
    CONSTRAINT [PK_表名] PRIMARY KEY   NONCLUSTERED 
        (
          [字段名1],
          [字段名2]
        )
    GO
    例:
    CREATE TABLE Student
        (Son CHAR(12) PRIMARY KEY,
    CREATE TABLE Course
        (Con CHAR(4),
        PRIMARY KEY (Con),
        );
    CREATE TABLE SC
        (Sno CHAR(12),
        Con CHAR(4),
        PRIMARY KEY(Sno,Con),
        FOREIGN KEY(Sno)REFERENCES Student(Sno),
        FOREIGN KEY(Cno)REFERENCES Course(Cno));

    展开全文
  • 复合主键:数据库表的主键由两个及以上的字段组成。  例如: CREATE TABLE `asm_device_config_info` ( `asmModel` varchar(32) NOT NULL COMMENT '自助机型号', `deviceType` varchar(32) NOT NULL COMMENT '...
  • 最近学习一点数据库的基本知识,被一个问题困惑了许久:主键是唯一的索引,那么为何一个表可以创建多个主键呢? 其实“主键是唯一的索引”这话有点歧义的。举个例子,我们在表创建了一个ID字段,自动增长,并设为...
  • 只要列包含NULL值都将不会被包含在索引复合索引只要一列含有NULL值,那么这一列对于此复合索引就是无效的。所以我们在数据库设计时不要让字段的默认值为NULL。 (如果很多字段可以为空,之后如果需要...
  • 建立主键两种方法:一种是在数据库提供的GUI环境建立,另一种是通过SQL语句执行建立,下面分别介绍。 1.在数据库提供的GUI环境建立(以SQL7为例)。 输入表信息后按Ctrl键同时选中多行,然后点上面的主键...
  • 数据库优化之复合索引不起作用的原因1,情景描述:最近在做数据统计这一块,一个功能然后使用起来觉得非常卡,然后就开始找所在原因。 2,查找原因 1,把sql语句打印出来放到mysql工具执行,发现了一条语句...
  • 自增长:当对应的字段不给值或者说是给默认值,或者给NULL的时候,会自动的被系统触发,系统会从当前字段中的最大值 再进行+1操作,得到一个新的不同的字段。自增长通常是跟主键搭配。 自增长的特点:auto_...
  • 数据库的设计,很多时侯,我们都要遇到数据的复合与数据的拆分问题。但什么时间用数据的复合,什么时间用数据的拆分呢?说到这里,很多人都要问,什么是数据的复合,什么又是数据的拆分呢?数据的复合指的是:...
  • mysql数据库复合索引

    千次阅读 2016-09-07 14:51:24
    mysql数据库中一张user表,其中包含字段A,B,C,字段类型如下:A:int,B:int,C:int根据字段A,B,C按照ABC顺序建立复合索引idx_A_B_C,以下查询语句使用到索引idx_A_B_C的语句有哪些? select *from user where A=1...
  • 数据库字段属性和索引

    千次阅读 2019-07-05 23:30:25
    字段属性 ...SQL操作中有多种方式可以给表增加主键:大体分为三种 方案1:在创建表的时候,直接在字段之后,跟primary key 关键字(主键本身不允许为空) 例如:创建表course,设置主键为Cname creat...
  • Access数据库创建复合索引

    千次阅读 2009-10-16 00:52:00
    Access数据库创建复合索引 用Access习惯了傻瓜式用鼠标点来点去,发现不能用鼠标创建复合索引,但SQL语句还是可以的: create unique index 索引名 on 表名(字段1,字段2) OK!
  • Hibernate允许自定义复杂数据类型的对象字段映射。Hibernate为用户提供了Java and SQL descriptors和UserType接口方式自定义自己的数据类型映射。我们首选Java and SQL descriptors方式,因为它允许更好地分离 Java-...
  • 数据库复合主键

    千次阅读 2018-03-28 17:57:29
    主键是唯一的索引,那么为何一个表可以创建多个...此时,我们再创建一个字段name,类型为varchar,也设置为主键,你会发现,在表的多行你是可以填写相同的name值的,这岂不是违“主键是唯一的索引”这句话么?...
  • 经常出现在where字句字段,特别是大表的字段,应该建立索引5. 索引应该建在选择型高的字段上6. 索引应该建在小字段上,对于大的文本字段甚至超长字段,不要建索引7. 复合索引的建立需要进行仔细分析,尽量考虑...
  • 检查自己的sql语句,为那些频繁在where子句出现的字段建立索引。 3,尝试建立复合索引来进一步提高系统性能。修改复合索引将消耗更长时间,同时,复合索引也占磁盘空间。 4,对于小型的表,建立索引可能会影响...
  • ROOM数据库指定字段具有唯一性

    千次阅读 2020-06-16 11:04:28
    在@Entity注解添加indices,并指明字段名称,以及unique = true 示例如下: @Entity(tableName = ALMANAC_TABLE , indices = [Index(value = ["date"],unique = true)]) 可以设置多个。设置完别完了做好数据库...
  • 为表的各个字段设置字段说明
  • 1.数据库设计14规则 1. 原始单据与实体之间的关系   可以是一对一、一对多、多对多的关系。在一般情况下,它们是一对一的关系:即一张原始单据对应且只对应一个实体。  在特殊情况下,它们可能是一对多或多对...
  • MYSQL的所有字段使用大全,必读,身藏 1.mysql的数值类型 列类型 需要的存储量  TINYINT 1 字节  SMALLINT 2 个字节  MEDIUMINT 3 个字节  INT
  • 数据库表设计--动态字段

    万次阅读 2012-05-24 17:19:33
    数据库表设计 当对象是动态的增加时的几种设计: 1.   在表预留字段. 这种做法效率高,但预览字段个数不知道要多少合适. 2.  动态的在表创建字段. 一般安全的系统是不容许这样做的. 3.  利用动态属性...
  • 最近学习一点数据库的基本知识,被一个问题困惑了许久:主键是唯一的索引,那么为何一个表可以创建多个主键呢? 其实“主键是唯一的索引”这话有点歧义的。举个例子,我们在表创建了一个ID字段,自动增长,并设...
  • 主键(primary key):是表的一个或多个字段,它的值用于唯一地标识表的某一条记录。 二:什么是单列主键: 取表某列的字段用来唯一的标识表的某一条记录。 三:什么是复合主键: 如果表没有某列的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 62,063
精华内容 24,825
关键字:

哪些数据库中有复合字段