目录 1.7-jdbc的PreparedStatement相比Statement的好处 分为:关系型数据库和非关系型数据库 范式:范式就是规范,关系型数据库在设计表时,要遵循的三个规范。要想满足第二范式必须先满足第一范式,要满足第三范式必须先满足第二范式 第一范式:是指数据库的每一列都是不可分割的基本数据项,同一列中不能有多个值,也就是实体类中的某个属性不能有多个值或者不能有重复的属性,列数据不可分割 第二范数:要求数据库中每个实例或行必须可以被唯一区分的,数据库中所有非主键字段完全依赖主键,不能产生部分依赖,以存储各个实例的唯一标识(主键) 第三范式:要求一个数据库表中不包含其他表中已经包含的非关键字信息(外键) 事务:是一个并发控制的单位,比如是用户定义的一个操作序列,这些操作要么都做,要么都不做,是一个不可分割的工作单位 事务必须满足四大特征: 原子性:表示操作事务内操作不可分割,要们都成功,要们都失败 一致性:要么成功,要们失败,失败了要对前面的操作进行回滚 隔离性:一个事务开始后,不能背其他的事务干扰 持久性/持续性:表示事务开始了,就不能终止 特定服务器上面的数据库只能支持一定数目同时连接,这时我们一般都会设置最大连接数(最多同时服务多少连接),在数据库安装时都会有一个默认的最大连接数。 最大连接数为100 Java只定义接口,让数据库厂商自己实现接口,对于开发而言,只需要导入对应厂商开发的实现即可,然后以接口实现即可,然后进行调用(mysql+mysql驱动(实现)+jdbc) PreparedStatement是预编译的,速度比Statement快 代码可读性和可维护性 安全性,PreparedStatement可以防止sql注入攻击,而statement不行 1:限定数据库连接的个数,不会导致由于数据库连接过多导致系统运行缓慢或者崩溃 2:数据库连接不需要每次都去创建或者销毁,节约了资源 3:数据库连接不需要每次都要去创建,响应时间更快 创建索引:创建合适的索引,我们就可以在索引中查询,查询到以后直接找对应的记录 分表:当一张表的数据比较多或一张表的某些字段的值比较多,并且很少使用时,采用水平分表和垂直分表来优化 读写分离:当一台服务器不能满足需求时,采用读写分离的方式进行集群 缓 存:使用redis来进行缓存 一些常用的优化技巧 在项目自验项目转测试之前,在启动mysql数据库时开启慢查询,并且把执行慢的语句写到日志中,在运行一定的时间后,通过查看日志找到慢查询语句 使用explain慢查询语句,来详细分析语句的问题 数据库分表有水平(按行)分表和垂直(按列)分表 Mysql数据表一般达到百万级别,查询效率会非常低,容易造成表锁,甚至堆积很多连接,直接挂掉,水平分表能够很大程度减少这些压力 开发中,我们经常使用的是MyISAM/innodb/memory MyISAM引擎: 如果表对事务的要求不高,同时是以查询和添加为主的,我们考虑使用MyISAM存储引擎 innodb引擎: 对事务要求高,保存的数据都是重要的数据,我们建议使用INNODB memory引擎: 我们数据变化频繁,不需要入库,同时又频繁的查询和修改,我们考虑使用memory,速度极快 事务安全:MyISAM不支持事务,INNODB支持事务 查询和添加速度:MyISAM不支持事务,所以不用考虑同步锁,所以查询和删除快,INNODB支持,所以速度比较慢 支持全文索引:MyISAM支持,INNODB不支持 锁机制:MyISAM支持表锁,而INNODB支持行锁(事务) 外键MyISAM不支持外键,innodb支持外键(通常不设置外键,通常是在程序中 保证数据的一致)Mysql
1.1-数据库的分类以及常用的数据库
1.2-关系数据库的三范式
1.3-事务的四个基本特征
1.4-Mysql数据库的最大连接数
1.5-对jdbc的理解
1.6-jdbc怎么调用存过程
public static void test() throws ClassNotFoundException, SQLException{ String driver = "com.mysql.cj.jdbc.Driver"; String url = "jdbc:mysql://127.0.0.1:3306/ssmidea?serverTimezone=UTC String user = "root"; String password = "root"; //1.注册驱动 Class.forName(driver); //2.建立连接 Connection conn=DriverManager.getConnection(url,user,password); //3.创建语句执行对象 Statement st=conn.createStatement();//创建Statement //4.执行语句 ResultSet rs=st.executeQuery("select * from user"); //5.处理结果 while(rs.next()){ System.out.print(rs.getObject(1)+"t"+rs.getObject(2)+"t"+rs.getObject(3)+"t"); } //6.释放资源,资源rs、st、conn的释放顺序与创建顺序相反 rs.close(); st.close(); conn.close(); }
1.7-jdbc的PreparedStatement相比Statement的好处
1.8-数据库连接池的作用
1.9-数据库优化手段
1.10-查找并定位慢查询
1.11-数据库分表
1.12-Mysql事务的隔离级别
1.13-什么是脏读?什么是幻读?
1.14-选择合适的数据库存储引擎
1.15-MyISAM和innodb的区别
//持续更新。。。。。。
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算