一、高并发可以提高线程的效率。
二、传统的jdbc实现断开与重连数据库,这种方式不适合企业的应用,因为会造成服务器奔溃。
三、MYSQL是属于关系型数据库,随着sql的性价比的提高,现在用的特多。
SQLite是小型数据库,手机里面用的多。
非关系数据库用键值数据库 做缓存用的。
四、SQL的分类:
DDL:是数据库定义语言,主要操作就是数据对象,表、索引,存储过程就是数据库对象,不建议使用。
create 创建 alter修改 drop删除
DML:主要操作有 select update insert delete
delete是真删除 实际开发中不建议使用 但是建议使用假删除is_delete
他的主要操作对象是表
TCL:(重点)主要针对事务
begin
//这个位置可执行多条SQL语句
commit(提交)
rollback(回滚 撤销以上所有操作)
DCL:主要操作对象是用户
开发中不要乱用selete*from 表明 会导致服务器损坏
过滤行 where
过滤列 select
分组group by
排序order by
多表 from 表名 别名 表名别名
事务
概念:执行一次性多条SQL 保证数据安全
作用:主要针对增删改
···特性:
原子性:要么全部成功要么失败(用undo日志去实现的)
一致性:状态一致性(指事务的开始和结束以后数据的完整没有被破坏也就是说数据的事务不能破化数据的完整性和逻辑性);
隔离性:(一般数据库的隔离级别不要变)
1 读取未提交(read-uncommit)
会产生脏读 、不可重复、幻读
2 读取已提交(read-commit)
强调的更新 解决脏读的问题
重复读(Repeatable-read)
mysql默认的隔离级别
3 序列化(Seralizeable)
在高并发的情况下会产生如下问题:脏读 、不可重复、幻读
脏读:一个事务读取到另外一个事务的数据
查看数据的隔离级别:SELECT @@TX_ISOLATION/ SELECT@@transaction_ioslation
5.5之后默认的隐形INNODB 支持事务
5.5之前默认的隐形MYISAM 不支持事务
4、持久性:一个事务一旦提交,事物的操作便永久性的保存在DB中。即使此时再执行回滚操作也不能撤消所做的更改
索引
1、主键索引—创建表的主键的时候会自动创建索引
2、唯一索引—语法–create unique index idx_表名_字段名 on 表名(列名)
3、概要:主要针对的是查 加快查询的速度,影响增删改的效率
4、应用分类:主键索引、唯一索引、普通索引、全文索引、复合索引
联合索引