✅ 操作成功!

java开发手册

发布时间:2023-06-12 作者:admin 来源:文学

java开发手册

java开发手册

行业关键词-郭春

2023年3月18日发(作者:小学军训作文)

阿⾥Java规范-05-MySQL数据库

=================(⼀)建表规约==================

根据《阿⾥巴巴Java开发⼿册》,数据库的表设计允许适当冗余,以提升SQL查询的性能,避免表的关联查询,下列哪些字段不允许⼏余:【CD】

A、⽂本类型的字段。

B、基本固定不变的类⽬名称。

C、varchar(2500)的字段

D、需要频繁修改的字段

.【推荐】字段允许适当冗余,以提⾼性能,但是必须考虑数据同步的情况。冗余字段应遵循:

1)不是频繁修改的字段。

2)不是varchar超长字段,更不能是text字段。

短连接:短连接操作步骤是:

连接-》数据传输-》关闭连接;

长连接:长时间保持客户端与服务端的连接状态。

连接-》数据传输-》保持连接-》数据传输-》保持连接-》…………-》关闭连接;

要求:长连接在没有数据通信时,定时发送数据包,以维持连接状态;短连接在没有数据传输时直接关闭就⾏了

关于表字段和索引,下列哪些说法符合《阿⾥巴巴Java开发⼿册》:【ABD】多选

A.表字段注释,如果修改字段含义或对字段表⽰的状态追加时,需要及时更新。

B.合适的字符存储长度,不但节约数据库表空间、节约索引存储,更重要的是提升检索速度。

C.针对表的每个字段都增加索引,加快查询速度。

D.字段的区分度越⾼,索引的查找速度越快。

创建表的时候写注释

createtabletest1(

field_nameintcomment‘字段的注释’

)comment=‘表的注释’;

修改表的注释

altertabletest1comment‘修改后的表的注释’;

修改字段的注释

altertabletest1modifycolumnfield_nameintcomment‘修改后的字段注释’;

关于数据库命名规则,下列哪些说法符合《阿⾥巴巴Java开发⼿册》:【BCD】多选

A.数据库库名和表名没有规定,可任意取名,只要⽅便记忆即可。

B.库名应该尽量与应⽤名称保持⼀致,表的命名最好是业务名称_表名的⽅式。

C.⽆论是库名还是表名都禁⽤保留字,如desc、match、range等。

D.表名、字段名必须使⽤⼩写字母或数字。

关于数据库是与否概念的列的命名⽅式,下列哪些说法符合《阿⾥巴巴Java开发⼿册》:【BD】多选

A.对于是与否概念的列名,必须使⽤can_abc来表⽰。

B.对于是与否概念的列名,必须使⽤is_abc来表⽰。

C.数据类型是varchar(1)(Y表⽰是,N表⽰否)。

D.数据类型是unsignedtinyint.(1表⽰是,0表⽰否)。

关于数据库中表相关的命名,下列哪些说法符合《阿⾥巴巴Java开发⼿册》:【ABD】多选

A.表名、字段名禁⽌出现数字开头,禁⽌两个下划线中间只出现数字。

B.表名不使⽤复数名词。

C.表必备三字段命名:id,gmt_create,gmt_modify。

D.表必备三字段命名:id,gmt_create,gmt_modified。

关于数据库索引的命名,下列哪些说法符合《阿⾥巴巴Java开发⼿册》:【ACD】多选

A.主键索引(primarykey),字段类型为unsignedbigint、单表时推荐⾃增、步长为1。

B.主键索引(primarykey),字段类型为unsignedbigint、单表时推荐⾃增、步长为2。

C.唯⼀索引(uniquekey),命名规则为uk_字段名(如果多个字段继续下划线)。

D.普通索引(normalindex),标记成idx_字段名(如果多个继续下划线)。

关于建表规约,下列哪些说法符合《阿⾥巴巴Java开发⼿册》:【ABCD】多选

A.字段为⾮负数,必须定义为unsigned。

B.存储的字符数⼏乎完全相等的字段,推荐定义为char类型存储。

r会预先分配存储空间

D.不得使⽤级联与外链,⼀切外链概念必须在应⽤层解决。

=================(⼆)索引规约==================

利⽤索引进⾏排序,下列哪些说法是正确的:多选【AB】

A.查询语句WHEREa=10ORDERBYb,可以利⽤素引(a,b)来进⾏索引排序。

B.查询语句WHEREa>10ORDERBYb,不可以利⽤素引(a,b)进⾏索引排序。

C.查询语句WHEREaIN(10,11)ODERBYb.可以利⽤索引(a,b)来进⾏索引排序。

D.查询语句WHERa>10ANDb=20ORDERBYa,可以利⽤索引(b,a)来进⾏素引排序。

解析:--whereain(...)orderbyb,c(对于排序来说,多个等于条件,也是范围查询)。⼜因为:⽐如索引中有范围查找,那么索引有序性⽆法利

⽤。

关于索引的设计,下列哪些说法符合《阿⾥巴巴Java开发⼿册》:【ACD】多选

A.对varchar类型的字段建⽴索引,必须指定索引长度。

B.对varchar类型的字段建⽴索引,不需要指定索引长度,这样索引区分度最好。

C.业务上具有唯⼀特性的字段(含组合字段),必须指定唯⼀索引。

D.建复合索引时,⼀般选择区分度⾼的字段放在最左列。

关于索引的使⽤,下列哪些说法是正确的:【BCD】多选

A.查询语句WHEREa+1=5可以利⽤a索引。

B.查询语句WHEREdate_format(gmt_create,'%Y-%m-%d')='2016-11-11'⽆法利⽤gmt_create索引。

C.当c列类型为char时,查询语句WHEREc=5⽆法利⽤c索引。

D.索引字段使⽤时不能进⾏函数运算。

关于MySQL性能优化的描述,下列哪些说法是正确的:【ABCD】多选

A.主键查询优先于⼆级索引查询。

B.表连接有⼀定的代价,故表连接数量越少越好。

C.⼀般情况下,⼆级索引扫描优先于全表扫描。

D.可以使⽤通过索引避免排序代价。

注意:这四条都要好好理解,对于索引优化都很有好处的。⼆级索引可以学习⼀下!

关于索引的设计和使⽤,下列哪些说法是正确的:【ABCD】多选

A.若查询条件中不包含索引的最左列,则⽆法使⽤索引。

B.对于范围查询,只能利⽤索引的最左列。

C.对于orderbyA或groupbyA语句,在A上建⽴索引,可以避免排序。//易错

D.对于多列排序,需要所有所有列排序⽅向⼀致,才能利⽤索引。

注意:组合索引有⼀个特性:做做前缀匹配,即(A,B,C)相当于(A),(A,B),(A,B,C)

索引使⽤规则:

若查询条件中不包含索引的最左列,⽆法使⽤索引

对于范围查询,只能利⽤索引的最左列

对于orderbyA语句或groupbyA语句,在A上建⽴索引,可以避免排序

对于多列排序,需要所有所有列排序⽅向⼀致,才能利⽤索引。

关于数据库模糊检索的描述下列哪些说法符合《阿⾥巴巴Java开发⼿册》:【ABD】多选

A.绝对禁⽌左模糊。

B.绝对禁⽌全模糊。

C.绝对禁⽌右模糊。

D.全模糊或左模糊查询需求,优先使⽤搜索引擎。

关于组合索引,下列哪些说法符合《阿⾥巴巴Java开发⼿册》:【AC】多选

A.查询条件wherea='0'andb='1',当组合索引为(b,a)的时候能进⾏索引扫描。

B.查询条件wherea='0'andb='1',当组合索引为(c,a,b)的时候进⾏索引扫描。

C.查询selectbfromtablewherea='0',当组合索引为(a,b)的时候会进⾏索引扫描。

D.查询条件wherea>'0'orderbyb,当组合索引为(a,b)时会利⽤索引进⾏排序。

对于索引(a,b,c),下列哪些说法是正确的【ABC】多选

A.查询语句whereabetween5and10可以使⽤该索引

B.查询语句wherea=5andbbetween5and10可以使⽤该索引.

C.查询语句whereain(5,6,7,8,9)andb=5可以使⽤该索引。

D.查询语句whereb=5andc=10可以使⽤该索引。

关于使⽤explain对数据库性能进⾏优化分析,下列哪些说法符合《阿⾥巴巴Java开发⼿册》【A】单选

性能优化的⽬标:⾄少要达到range级别,要求是ref级别,如果可以是consts最好。

级别⾛的是扫描索引,所以管卡压我⾮常⽐ref快。

级别是指对表进⾏范围索引。

级别是指使⽤主键或者唯⼀索引。

关于索引效率,下列哪些说法符合《阿⾥巴巴Java开发⼿册》:【CD】

A.使⽤索引的效率⼀定⾼于全表扫描的效率。

B.关于explain的结果,type=index的索引效率好于type=ref。

查询条件wherealike‘%阿⾥%’,不会⾛索引。

查询条件wherealike‘阿⾥%’,a列创建了索引,⼀般会使⽤索引进⾏检索。

关于join的描述,下列哪些说法符合《阿⾥巴巴Java开发⼿册》:【AB】多选

的字段,数据类型须保持绝对⼀致。

列必须有索引。

C.优先where过滤,其次再join关联。

D.只要满⾜业务需求和,join表的个数不受限制。

对于索引的基本原理,下列哪些说法是正确的:【ABCD】多选

A.索引的数据结构主要有B-Tree、Hash、R-Tree、Full-Text等。

B.从物理存储来看,主要分为聚集(clustered)和⾮聚集(non-clustered)索引。

的表是聚集索引组织表(indexoftable)。

D.聚簇索引的叶⼦节点存放的是数据,⾮聚簇索引的叶⼦节点存放的是⾮聚集索引的key和主键值。

关于使⽤explain对数据库性能进⾏优化分析,下列哪些说法符合《阿⾥巴巴Java开发⼿册》:【A】

性能优化的⽬标:⾄少要达到range级别,要求是ref级别,如果可以是consts最好。

级别⾛的是扫描索引,所以速度会⽐ref快。

级别是指对表进⾏范围索引。

级别是指使⽤主键或者唯⼀索引。

关于explain执⾏计划,下列哪些说法是正确的【ABCD】多选

列显⽰了连接使⽤了何种类型,从最好到最差的连接类型为:const,eq_ref,ref,range,index,ALL。

le_keys显⽰可能在这张表中的索引,如果为空,表⽰没有可能的索引。

列表⽰实际使⽤的索引。

列显⽰索引的哪⼀列被使⽤了。

=================(三)SQL语句==================

关于分页查询,下列哪些说法符合《阿⾥巴巴Java开发⼿册》:【ABC】多选

A.分页查询,当统计的count为0时,应该直接返回,不要再执⾏分页查询语句。

⾃带的queryForList(StringstatementName,intstart,intsize)分页接⼝有性能隐患,不允许使⽤。

C.定义明确的sql查询语句,通过传⼊参数start和size来实现分页逻辑。//易错

D.可使⽤存储过程写分页逻辑,提⾼效率。

关于数据库中NULL的描述,下列哪些说法符合《阿⾥巴巴Java开发⼿册》:【BD】多选

=NULL的返回结果为true。

与任何值的⽐较结果都为NULL。

1的返回结果为true。

D.当某⼀列的值全是NULL时,sum(col)的返回结果为NULL。

提⽰:count(col1,col2)如果其中有⼀列为空则返回0,那么count(col)也是⼀样的!

关于count相关的使⽤,下列哪些说法符合《阿⾥巴巴Java开发⼿册》:【ACD】多选

A、不要使⽤count(列名)或count(常量)来替代count()

B、count(列名)会统计值为NULL的⾏,⽽count()不会统计。

C、当某⼀列的值全是NULL时,count(列名)返回0。

D、在程序代码中写分页查询逻辑时,若count为0应直接返回,以免执⾏后⾯的分页语句。

关于数据库查询的描述,下列哪些说法符合《阿⾥巴巴Java开发⼿册》:【BCD】多选

A.当需要获取数据表所有字段的值映射到DO时,可使⽤Select*来查询。

B.绝对禁⽌左模糊和全模糊查询;限制使⽤右模糊查询。全模糊或左模糊搜索的需求⾛搜索引擎实现。

C.禁⽌使⽤存储过程来查询返回数据。

D.在表查询中,需orderby排序时,优先使⽤主键列,索引列。

=================(四)ORM映射==================

关于使⽤iBATIS操作数据,下列哪些说法符合《阿⾥巴巴Java开发⼿册》【CD】多选

A.如果表中字段和DO中的字段名完全⼀致,可直接⽤DO作为resultClass。

中⾃带了queryForList(StringstatementName,intstart,intsize)的分页接⼝,可直接使⽤,⽆需再⾃⾏封闭。

C.不要定义⼤⽽全的数据更新接⼝,对整个DO进⾏更新。必须按需更新。

中写update语句时,必须包含对记录中gmt_modified字段的更新。

关于ORM的规则,下列哪些说法符合《阿⾥巴巴Java开发⼿册》:【AD】

A.数据库中,表达是与否概念的字段,必须使⽤is_xxx的⽅式命名。

B.推荐使⽤iBATIS⾃带的queryForList(StringstatementName,intstart,intsize)进⾏分页查询。(不推荐)

C.为避免写resultMap,可以直接拿HashMap与HashTable作为查询结果集的输出。

D.不要⽤resultClass当返回参数,即使所有类属性名与数据库字段⼀⼀对应,也需要定义。

👁️ 阅读量:0