My Github

随笔分类 -  【013】数据库技术学习

DBMS、SQL、PL/SQL、T-SQL...
摘要:MySQL作为一个后端工程师,想必没有人没用过数据库,跟我一起复习一下MySQL吧,本文是我学习《MySQL实战45讲》的总结笔记的第六篇,总结了MySQL的InnoDB引擎是如何解决幻读问题的,即通过 间隙锁 + 行锁组成的next-key lock来实现的。 阅读全文
posted @ 2021-04-07 16:49 EdisonZhou 阅读(239) 评论(0) 推荐(0) 编辑
摘要:MySQL作为一个后端工程师,想必没有人没用过数据库,跟我一起复习一下MySQL吧,本文是我学习《MySQL实战45讲》的总结笔记的第六篇,总结了MySQL的InnoDB引擎相关的实践使用问题,包括MySQL为什么有时候会不稳定的“抖”一下、为何表数据删除了一半但表文件大小没变 和 为何 count(*)会很慢。 阅读全文
posted @ 2021-03-10 10:23 EdisonZhou 阅读(290) 评论(0) 推荐(0) 编辑
摘要:MySQL作为一个后端工程师,想必没有人没用过数据库,跟我一起复习一下MySQL吧,本文是我学习《MySQL实战45讲》的总结笔记的第五篇,总结了MySQL索引相关的实践使用问题。本文总结了MySQL的索引相关的实践使用问题,包括普通索引和唯一索引如何选择,MySQL为什么有时候会选错索引,怎么给字符串字段加索引。 阅读全文
posted @ 2021-03-01 10:43 EdisonZhou 阅读(265) 评论(0) 推荐(0) 编辑
摘要:MySQL作为一个后端工程师,想必没有人没用过数据库,跟我一起复习一下MySQL吧,本文是我学习《MySQL实战45讲》的总结笔记的第四篇,总结了MySQL的锁的相关知识,包括全局锁、表级锁(表锁和元数据锁)及行锁,最后了解了死锁的产生及应对策略。 阅读全文
posted @ 2021-02-01 10:06 EdisonZhou 阅读(251) 评论(0) 推荐(0) 编辑
摘要:MySQL作为一个后端工程师,想必没有人没用过数据库,跟我一起复习一下MySQL吧,本文是我学习《MySQL实战45讲》的总结笔记的第三篇,本文总结了MySQL的索引相关知识,包括常见模型结构、主键和普通索引、索引的维护 及 MySQL 5.6新增的索引下推优化,理解他们可以帮助我们更好地理解MySQL的索引。 阅读全文
posted @ 2021-01-29 10:16 EdisonZhou 阅读(353) 评论(0) 推荐(1) 编辑
摘要:MySQL作为一个后端工程师,想必没有人没用过数据库,跟我一起复习一下MySQL吧,本文是我学习《MySQL实战45讲》的总结笔记的第二篇,总结了MySQL的四种事务隔离级别、实现方式 及 启动方式,可以帮助我们使用好MySQL的事务特性。 阅读全文
posted @ 2021-01-27 10:53 EdisonZhou 阅读(348) 评论(0) 推荐(0) 编辑
摘要:MySQL作为一个后端工程师,想必没有人没用过数据库,跟我一起复习一下MySQL吧,本文是我学习《MySQL实战45讲》的总结笔记的第一篇,总结了MySQL的基础架构、一个查询语句的执行过程 以及 一条更新语句的执行过程。 阅读全文
posted @ 2021-01-25 10:32 EdisonZhou 阅读(594) 评论(2) 推荐(2) 编辑
摘要:MSSQL2008 T-SQL Query索引优化是查询优化中最重要的一部分,索引是一种用于排序和搜索的结构,在查找数据时索引可以减少对I/O的需要;当计划中的某些元素需要或是可以利用经过排序的数据时,也会减少对排序的需要。某些方面的优化可以适度提高性能,而索引优化经常可以大幅度地提高查询性能。 阅读全文
posted @ 2017-12-19 23:52 EdisonZhou 阅读(1323) 评论(0) 推荐(0) 编辑
摘要:MSSQL2008 T-SQL Query执行计划是优化器生成的用于确定如何处理一个给定查询的“工作计划”。一个计划包含一组运算符,通常按照特定的顺序来应用这些运算符。此外,一些运算符可以在它们之前的运算符还在处理时不应用(即不一定是完全串行),还有一些运算符也有可能被应用多次。 阅读全文
posted @ 2017-12-15 00:13 EdisonZhou 阅读(1038) 评论(0) 推荐(2) 编辑
摘要:MSSQL2008 T-SQL Query《Microsoft SQL Server 2008技术内幕-T-SQL查询》一书介绍了MSSQL2008中高级T-SQL查询、性能优化等方面的内容,以及MSSQL2008新增的一些特性。本篇读书笔记主要记录第一章也是个人觉得对所有人都比较有用的一章:逻辑查询处理。因为这一章介绍了查询处理的核心基础,还因为SQL编程和其他类型的编程有很大的区别。 阅读全文
posted @ 2017-12-09 15:21 EdisonZhou 阅读(1330) 评论(2) 推荐(1) 编辑
摘要:MSSQL2008 T-SQL Fundamentals事务和并发是数据库中一个比较重要的概念,本篇会介绍事务及其属性,解释Microsoft SQL Server如何使用锁来隔离不一致的数据,如何解决阻塞状态的问题,以及当以不同的隔离级别来查询数据时,如何控制数据一致性的级别。另外,还会介绍死锁问题和如何减少死锁的发生,并就如何减少死锁的发生而提供了一些值得借鉴的最佳实践。 阅读全文
posted @ 2016-12-04 12:58 EdisonZhou 阅读(16227) 评论(2) 推荐(26) 编辑
摘要:MSSQL2008 T-SQL FundamentalsMicrosoft SQL Server 2008 T-SQL语言基础是微软数据库技术内幕系列的一本,同时它也是我的2016读书计划中的一本,因此我也将我学习过程中记录的一些点汇总成此文,与各位园友分享。上一篇介绍了SQL Server的体系结构、查询、表表达式以及集合运算。这一篇会介绍五、透视、逆透视及分组,数据修改,事务和并发以及可编程对象。最后,我也向各位推荐这本书,值得各位微软技术的程序员看看。本篇有很多例子,一方面是我挑选的书中案例,另一方面也作为我以后的参考,把书读薄嘛。 阅读全文
posted @ 2016-11-30 00:34 EdisonZhou 阅读(3147) 评论(5) 推荐(17) 编辑
摘要:MSSQL2008 T-SQL FundamentalsMicrosoft SQL Server 2008 T-SQL语言基础是微软数据库技术内幕系列的一本,全面深入的介绍了T-SQL的基本元素,以及SQL Server 2008中新增加的一些特性。主要包括SQL的基础理论、逻辑查询处理、SELECT查询、连接和子查询、表表达式、过滤和分组、透视转换、修改数据、事物和一致性的处理、可编程对象等内容。同时,它也是我的2016读书计划中的一本,因此我也将我学习过程中记录的一些点汇总成此文,与各位园友分享,本篇为上篇,主要介绍查询、表表达式以及集合运算。最后,我也向各位推荐这本书,值得各位.NET程序员看看。 阅读全文
posted @ 2016-11-27 23:46 EdisonZhou 阅读(4868) 评论(6) 推荐(16) 编辑
摘要:Dapper是一个开源轻的量级的ORM,只有一个代码文件,完全开源,你可以放在项目里的任何位置,来实现数据到对象的ORM操作,体积小速度快。PetaPoco是一款适用于.NET应用程序的轻型对象关系映射器。与那些功能完备的ORM(如NHibernate或Entity Framework)不同的是,PetaPoco更注重易用性和性能,而非丰富的功能。 阅读全文
posted @ 2015-10-04 00:50 EdisonZhou 阅读(7212) 评论(2) 推荐(2) 编辑
摘要:(1)通过选择以XML方式打开edmx文件,我们可以可以清楚地看到,edmx模型文件本质就是一个XML文件;(2)可以清楚地看到,edmx模型文件是一个XML文件,其中定义了三大组成部分,这三大组成部分构成了所谓的ORM(对象关系映射);(3)再通过解决方案管理器分析edmx模型文件,其包含了三个子文件:①第一个是xxx.Context.tt,这个首先是一个T4的模板文件,它生成了我们这个模型的上下文类;②第二个是设计器部分,它定义了模型关系图的元数据,比如每个类图的宽度多少,在图中的坐标(X、Y轴)等;③第三个就是数据库表中所对应的实体类对象,它也是一个T4模板文件,对应了所有选择的数据库表: 阅读全文
posted @ 2015-02-06 15:39 EdisonZhou 阅读(3814) 评论(10) 推荐(7) 编辑
摘要:所谓的事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位。例如,银行转账工作:从一个账号扣款并使另一个账号增款,这两个操作要么都执行,要么都不执行。所以,应该把它们看成一个事务。事务是数据库维护数据一致性的单位,在每个事务结束时,都能保持数据一致性。这里使用事务解决刚刚的那个转账的问题,注意这里使用到了系统变量@@ERROR,但是@@ERROR只能判断当前一条T-SQL语句执行是否有错,为了判断事务中所有T-SQL语句是否有错,我们需要对错误进行累计,于是我们可以定义一个局部变量来记录整个操作序列期间的错误数。 阅读全文
posted @ 2014-08-28 17:43 EdisonZhou 阅读(5595) 评论(9) 推荐(19) 编辑
摘要:假设我们有一个论坛网站,其中有一张User表{ UId,Name,Level },Level是一个int类型,代表了用户等级类型,例如:1代表骨灰,2代表大虾等;我们就可以用CASE来对其进行等值判断了:假设我们有一张Score成绩表,里面记录有所有同学的成绩,此时我们想要对所有成绩进行一个评级,比如成绩如果=90那么则评为A级,=80且90则评为B级,这里我们怎来写呢? 阅读全文
posted @ 2014-08-23 02:00 EdisonZhou 阅读(6987) 评论(7) 推荐(28) 编辑
摘要:本文是在Cat Qi的参考原帖的基础之上经本人一题一题练习后编辑而成,非原创,仅润色而已。另外,本文所列题目的解法并非只有一种,本文只是给出比较普通的一种而已,也希望各位园友能够自由发挥。 阅读全文
posted @ 2014-08-04 16:33 EdisonZhou 阅读(8818) 评论(2) 推荐(8) 编辑
摘要:本文是在Cat Qi的参考原帖的基础之上经本人一题一题练习后编辑而成,非原创,仅润色而已。另外,本文所列题目的解法并非只有一种,本文只是给出比较普通的一种而已,也希望各位园友能够自由发挥。 阅读全文
posted @ 2014-08-02 12:20 EdisonZhou 阅读(17776) 评论(19) 推荐(55) 编辑