笔记1

来源:互联网 发布:python用命令行参数 编辑:程序博客网 时间:2024/06/16 16:59

泛型
通用数据类型T
最大限度地重用代码、保护类型的安全以及提高性能。

并行运算-Parallel
时间上的并行:是指流水线技术
空间上的并行:是指多个处理机并发的执行计算

数据读写分离
写数据库处理增删改,读数据库处理读(多个)
每次有写库操作,同步更新cache,每次读取先读cache在读DB。
好处:减轻数据库压力
如果第一台数据库崩溃,第二台可以立即上线,并且数据不会丢失,但是第一台仍有少量的新数据,没来及发送到第二台。第二台数据库是用来热备的,压力本来应该小,但是读写分离增加了压力,不稳定性。
读写分离,实质上是一个在资金比较缺乏,但又需要保证数据安全的需求下,在双机热备方案上,做出的一种折中的扩展方案。

存储过程
第一次编译后无需再次编译的SQL语句集。
例:
CREATE PROCEDURE order_tot_amt
@o_id int,
@p_tot int output
AS
SELECT @p_tot = sum(Unitprice*Quantity)
FROM orderdetails
WHERE orderid=@o_id
GO
优点:
1重复使用
2减少网络流量
存储过程位于服务器上,调用的时候只需要传递存储过程的名称以及参数就可以了,因此降低了网络传输的数据量。
3安全性
缺点:
1设计逻辑变更,修改存储过程没有SQL灵活
何时使用存储过程:
1在一些高效率或者规范性要求比较高的项目,建议采用存储过程
2对于一般项目建议采用参数化命令方式,是存储过程与SQL语句一种折中的方式
3对于一些算法要求比较高,涉及多条数据逻辑,建议采用存储过程

共享锁
又称读锁(S锁),用于不更改或不更新数据的操作(只读操作),如 SELECT 语句。
事物T对数据A加上共享锁后,其他事务只能再加共享锁,不能加排他锁(即 只能读不能改)。

独占锁
写锁、排他锁(X锁),用于数据修改操作,例如 INSERT、UPDATE 或 DELETE。确保不会同时同一资源进行多重更新。
事物T对数据A加上排他锁后,其他事务不能加任何类型的锁(即 不能读不能改)。

更新锁(UPDLOCK)
允许您读取数据(不阻塞其它事务)并在以后更新数据,同时确保自从上次读取数据后数据没有被更改。

脏读
事务1修改了一个数据,事务2要读取这个数据,但某些原因事务1回滚,事务2读到的数据就是脏数据

NOLOCK和READPAST
NOLOCK不加锁查询,可以读取被事务锁定的数据,也称为脏读。
READPAST将跳过行级锁,会跳过被其他事务锁定的队列项,不会获取到脏数据。

死锁
若干事务相互等待释放封锁,就陷入无限期等待状态,系统就进入死锁
阻塞
事务1给数据1加了X锁,然后一个新的连接读数据1,造成读的阻塞
解决:
1把select放update前面。
2把select也加到事务中
3 NOLOCK
4—-
避免死锁
按同一顺序访问对象
NOLOCK
…………

轻量级ORM模型-Dapper

原创粉丝点击