吴藏的博客

自律给自由


  • 首页

  • 标签

  • 分类

  • 归档

  • 搜索

MySQL存储过程

发表于 2017-05-10 | 分类于 数据库 | 评论数: | 阅读次数:
本文字数: 8k | 阅读时长 ≈ 7 分钟

优缺点

优点

  • 在生产环境下,可以通过直接修改存储过程的方式修改业务逻辑(或bug),而不用重启服务器。但这一点便利被许多人滥用了。有人直接就在正式服务器上修改存储过程,而没有经过完整的测试,后果非常严重。
  • 执行速度快。存储过程经过编译之后会比单独一条一条执行要快。但这个效率真是没太大影响。如果是要做大数据量的导入、同步,我们可以用其它手段。
  • 减少网络传输。存储过程直接就在数据库服务器上跑,所有的数据访问都在服务器内部进行,不需要传输数据到其它终端。但我们的应付服务器通常与数据库是在同一内网,大数据的访问的瓶颈会是硬盘的速度,而不是网速。
  • 能够解决presentation与数据之间的差异,说得文艺青年点就是解决OO模型与二维数据持久化之间的阻抗。领域模型和数据模型的设计可能不是同一个人(一个是SA,另一个是DBA),两者的分歧可能会很大——这不奇怪,一个是以OO的思想来设计,一个是结构化的数据来设计,大家互不妥协——你说为了软件的弹性必须这么设计,他说为了效率必须那样设计,为了抹平鸿沟,就用存储过程来做数据存储的逻辑映射(把属性映射到字段)。好吧,台下已经有同学在叨咕ORM了。
  • 方便DBA优化。所有的SQL集中在一个地方,DBA会很高兴。这一点算是ORM的软肋。不过按照CQRS框架的思想,查询是用存储过程还是ORM,还真不是问题——DBA对数据库的优化,ORM一样会受益。况且放在ORM中还能用二级缓存,有些时候效率还会更高。
    阅读全文 »

PHP设计模式-空对象

发表于 2017-05-01 | 分类于 PHP | 评论数: | 阅读次数:
本文字数: 1.7k | 阅读时长 ≈ 2 分钟

适用性

  • 当程序运行过程中出现操作空对象时,程序依然能够通过操作提供的空对象继续执行
  • 下面实现老师课堂叫学生回答问题
    阅读全文 »

PHP设计模式-中介者

发表于 2017-04-27 | 分类于 PHP | 评论数: | 阅读次数:
本文字数: 1.9k | 阅读时长 ≈ 2 分钟

适用性

  • 就是不同的对象之间通信,互相之间不直接调用,而是通过一个中间对象(中介者)
  • 使用场景:对象之间大量的互相依赖
  • 下面实现一个房屋中介
    阅读全文 »

PHP设计模式-迭代器

发表于 2017-04-26 | 分类于 PHP | 评论数: | 阅读次数:
本文字数: 3.1k | 阅读时长 ≈ 3 分钟

适用性

  • 遍历对象内部的属性,无需对外暴露内部的构成
  • 下面我们来实现一个迭代器访问学校所有的老师
    阅读全文 »

PHP设计模式-命令

发表于 2017-04-25 | 分类于 PHP | 评论数: | 阅读次数:
本文字数: 4k | 阅读时长 ≈ 4 分钟

适用性

  • 命令模式:就是在依赖的类中间加一个命令类,本来可以直接调用的类方法现在通过命令来调用,已达到
  • 解耦的的目的,其次可以实现undo,redo等操作,因为你知道调了哪些命令
  • 下面我们来用命令模式实现一个记事本,涉及的命令:
    • 新建
    • 写入
    • 保存
      阅读全文 »

PHP设计模式-备忘录

发表于 2017-04-23 | 分类于 PHP | 评论数: | 阅读次数:
本文字数: 2.6k | 阅读时长 ≈ 2 分钟

适用性

  • 就是外部存储对象的状态,以提供后退/恢复/复原
  • 使用场景:编辑器后退操作/数据库事物/存档
    阅读全文 »

PHP设计模式-解释器

发表于 2017-04-20 | 分类于 PHP | 评论数: | 阅读次数:
本文字数: 5.5k | 阅读时长 ≈ 5 分钟

适用性

  • 理解:就是一个上下文的连接器
  • 使用场景:构建一个编译器,SQL解析器
  • 下面我们来实现一个简单增删改查的sql解析器
    阅读全文 »

PHP设计模式-访问者

发表于 2017-04-09 | 分类于 PHP | 评论数: | 阅读次数:
本文字数: 1.3k | 阅读时长 ≈ 1 分钟

适用性

  • 说说我对的策略模式和访问者模式的区分:
  • 乍一看,其实两者都挺像的,都是实体类依赖了外部实体的算法,但是:
  • 对于策略模式:首先你是有一堆算法,然后在不同的逻辑中去使用
  • 对于访问者模式:实体的【结构是稳定的】,但是结构中元素的算法却是多变的,比如就像人吃饭这个动作
  • 是稳定不变的,但是具体吃的行为却又是多变的
    阅读全文 »

PHP设计模式-责任链

发表于 2017-04-06 | 分类于 PHP | 评论数: | 阅读次数:
本文字数: 3.5k | 阅读时长 ≈ 3 分钟

适用性

  • 把一个对象传递到一个对象链上,直到有对象处理这个对象
  • 可以干什么:我们可以做一个filter,或者gateway
    阅读全文 »

PHP设计模式-观察者

发表于 2017-04-05 | 分类于 PHP | 评论数: | 阅读次数:
本文字数: 2.5k | 阅读时长 ≈ 2 分钟

适用性

  • 观察者观察被观察者,被观察者通知观察者
    阅读全文 »
1…3456

Ziv

There is no royal road to learning.
57 日志
12 分类
13 标签
© 2016 – 2020 Ziv | 164k | 2:29
由 Hexo 强力驱动 v3.8.0
|
主题 – NexT.Muse v7.1.2