校招知识点总结篇之数据库

1.基础知识

数据库系统DBS:由数据库DB、数据库管理系统DBMS、应用系统、数据库管理员DBA构成;

数据库:三级模式(模式-全局逻辑1、外模式(子模式)-局部逻辑n、内模式(存储模式)-物理结构1)、两级映像(外模式/模式-逻辑、模式/内模式-物理)

       逻辑独立性:模式改变,外模式不变;

       物理独立性:模式不变,内模式改变;

非关系型数据库:Hbase、Redis、MongodDB、Neo4j、NewSQL(NoSQL)、Cloudant;

关系型数据库:Oracle、DB2、Microsoft SQL Server、Microsoft Access、MySQL;

2.sqlite升级,增加字段的语句

3.数据库框架对比和源码分析

4.数据库优化

好的数据库管理工具、数据分区、索引、缓存机制、加大虚存、分批处理、临时表(中间表)的使用、查询语句优化、视图、存储过程、排序、用抽样数据进行数据挖掘

数据库索引

优缺点:优点——提高数据库检索速度,创建唯一性索引,保证数据库表中每一行数据的唯一性,减少磁盘IO;缺点——需要占用磁盘空间(物理空间),创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加;、

分类:普通索引、唯一索引(保证在索引列中的全部数据是唯一的);单个索引(对单个字段建立索引)、复合索引(索引建立语句中同时包含多个字段名);顺序、散列、位图索引;

Mysql 联合索引:MySQL使用联合索引只能使用左侧的部分,例如INDEX(a,b,c),当条件为a或a,b或a,b,c时都可以使用索引,但是当条件为b,c时将不会使用索引。离散度更高的索引应该放在联合索引的前面,因为离散度高索引的可选择性高。

数据库优化方案:避免全局扫描,首先考虑在where 和order by涉及的列上建立索引;最好不要给数据库留NULL,尽可能的使用 NOT NULL填充数据库(避免where子句中对NULL进行判断、避免使用!= 或 <> 操作符、避免使用or连接条件、避免in和not in慎用,可用exists(not exists/ LEFT OUTER JOIN)替换、避免在 where子句中对字段进行表达式操作、避免在where子句中对字段进行函数操作、)、索引不是越多越好,会降低 insert 及 update 的效率、避免使用游标、在所有的存储过程和触发器的开始处设置 SET NOCOUNT ON ,在结束时设置 SET NOCOUNT OFF、避免大事务操作、避免向客户端返回大数据;

性能优化:两个指标——延时(响应时间)、带宽(吞吐量),数据库访问优化漏斗法则

减少数据/磁盘访问(创建并正确使用index);返回更少的数据(减少网络传输/磁盘访问,数据分页处理);减少交互次数(批量交互、in list、设置Fetch Size、使用存储过程、优化业务逻辑、使用ResultSet游标处理记录);减少CPU及内存开销(使用绑定变量、合理使用排序、减少比较操作、大量复杂运算在客户端处理);利用更多的资源(增加资源、客户端多进程并行访问、数据库并行处理)

数据库的索引有什么用,有几种类型,在哪里新建,在哪里修改

5.数据库数据迁移问题

6.SQL语言

数据查询:select * from table where 条件 group by …having…order by[ASC/DESC]

数据操作DML:insert into table(字段1,字段2,…)values(值1,值2,…)

              Insert into table(字段1,字段2,…) select 查询

              Update table set 字段名=字段值 where 条件

              Delete from table where 条件表达式

数据定义DDL:create  table 表名(列名-类型-列级约束,…表级完整性约束)

              Create index 索引名 on 表名(列名-次序)

              Create view 视图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值