栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

每天5道Java面试题 -4(MySQL)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

每天5道Java面试题 -4(MySQL)

1.实践中如何优化MySQL?

按照以下顺序优化:

SQL语句及索引的优化

数据库表结构的优化

系统配置的优化

硬件的优化

2.优化数据库的方法

1)选取最适用的字段属性,尽可能减少定义字段宽度,尽量把字段设置成NOTNULL,例如“省份”、“性别”最好使用ENUM

2)使用连接(JOIN)来代替子查询

3)使用联合(UNIOn)来代替手动创建的临时表

4)事务处理

5)锁定表,优化事务处理

6)使用外键,优化锁定表

7)建立索引

8)优化查询语句

3.唯一索引比普通索引快吗,为什么?

唯一索引不一定比普通索引快,还可能慢

        查询时,在未使用limit 1的情况下,在匹配到一条数据后,唯一索引即返回,普通索引会继续匹配下一条数据,发现不匹配后返回,如此看来唯一索引少了一次匹配,但实际上这个消耗微乎其微

        更新时,这个情况就比较复杂了,普通索引将记录放到change buffer中语句就执行完毕了,而对唯一索引而言,它必须要校验唯一性。因此,必须将数据页读入内存确定没有冲突,然后才能继续操作,对于写多读少的情况,普通索引利用change buffer 有效减少了对此盘的访问速度,因此普通索引性能要高于唯一索引

4.简单说一下数据库范式

        第一范式:属性不可再分

        第二范式:在一范式的基础上,要求数据库表中的每个实例或行必须可以被唯一的区分,通常需要为表加上一个列,以储存各个实例的唯一标识,这个唯一属性列被称为主关键字或者主键。

        第三范式:在二范式的基础上,要求一个数据库表中不包含已在其他表中已包含的非主关键字信息,所以第三范式有以下特征:

                1)每一列只有一个值

                2)每一行都能区分

                3)每一个表都不包含其他表已经包含的非主关键字信息

5.一千万条数据的表,如何分页查询?

        数据量过大的情况下,limit offset分页会由于扫描数据太多而越往后查询越慢,可以配合当前页最后一条ID进行查询

SELETE * FROM TABLE WHERe ID > #{ID} LIMIT #{LIMIT}

        当然,这种情况下ID必须是有序的,这也是有序ID的好处之一

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/434424.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号