数据库分类
关系型数据库:mysql ,oracle,sqlserver
非关系型数据库:redis,memcatch,mogodb,hadoop
关系型数据库三范式:
第一范式:列数据的不可分割性,
二:主键
三:外键
反三范式:有的时候为了效率可以设置重复的或可推导的值
订单(总价)与订单项(单价)
事务的四大特征:
事务:一个操作,要么都做,要么都不做
原子性:事务内操作不可份割,要么都成功,要么都失败。
一致性:要么都成功,要么都失败,如果失败,要回滚
隔离性:一个事务开始了,不能受其他事务干扰
持久性; 事务开始了,就不能终止。
mysql的最大连接数?
mysql数据库只能支撑在一定时间连接的最大数目,默认为100
mysql的分页
在大多数情况,数据不能完全显示
limit 索引 ,大小
jdbc的调用存储过程
加载驱动——获取连接——设置参数——执行——释放
jdbc 是java定义的一个接口
数据库厂商如果想对java支持,就必须实现jdbc接口
PreparedStatement相比statement的好处
1. PreparedStatement是预编译的 ,比statement 速度快
2. PreparedStatement的可读性和可维护性更好
3.安全性更高(防止sql注入攻击)
数据库优化
1. 定位慢查询,优化sql语句
2. 创建索引
3. 分表:某些表字段很少使用时,可以采用水平分表或垂直分表
4. 读写分离
5. 缓存:利用redis来进行缓存
myISam 和innodb 的主要区别??
1. 事务安全 myISam 不支持事务, innodb 支持事务
2. 查询和增加速度,myIsam 查找和增加的速度快
3.全文索引: myisam支持全文索引,inndb 不支持
4.锁 myisam 支持表锁,inndb支持行锁。
5.外键 myisam 不支持外键 , inndb 支持外键
选择合适的索引?
普通索引:
唯一索引
主键索引
全文索引