Oracle与Mysql应用总结
创始人
2024-07-28 18:20:50
0

导读:在以前开发的时候,一直在使用oracle,甚至参加过oracle的培训,考过Oracle Database 10g Administrator I,自认对oracle还算有些了解,不过最近在做一个分布式数据系统的测试的时候,才有“学到用时方恨少”的感悟。Oracle与Mysql的应用是怎样的呢?在此把最近总结的一些东西陆续跟测试 部的同学们一起分享吧。

1. in如何与list绑定:

一个带in子查询的语句相信对很多人来说都是司空见惯了的,例如:「select * from normaltbl_ora where pk in (1,2,3,4)」、「select * from normaltbl_ora where name in (“manhong”,”yihuan”,”gongyangyu”,”yaolingling”) 」。但是如果in的查询字段上没有建立索引或者无法通过索引查询,那数据库会将该字段与in里面的每个值都进行比较运算,如果记录数有成千上万条甚至以 上,会明显感觉到SQL的CPU开销过大甚至难以负荷,过量的使用这样的语句,将引起数据库的大量硬解析与共享池的SQL碎片。所以,在实际的应用过程 中,我们则可以采用list的方式将这些in字段绑定起来。接下来具体描述如何创建in与list绑定,以及如何去使用它们。

a. 创建数据类型

数值列表数据类型

字符串列表数据类型

b. 创建相关函数

数值列表函数

字符串列表函数

c. 查询

通过数值列表函数查询

通过字符串列表函数查询

2. 关于Hint的使用:

在做分布式数据系统测试的时候,发现它们有一个非常关键的技术点是生成sql的执行计划。而Hint就是这样的一种机制,用来告诉优化器按照我们的 告诉它的方式生成执行计划。Hint可以基于表连接的顺序、表连接的方法、访问路径、并行度等规则对dml语句、或者查查询语句产生作用,通过它我们可以 实现:

1) 使用的优化器的类型

2) 基于代价的优化器的优化目标,是all_rows还是first_rows。

3) 表的访问路径,是全表扫描,还是索引扫描,还是直接利用rowid。

4) 表之间的连接类型

5) 表之间的连接顺序

6) 语句的并行程度

a. Hint语法:

/* */常写代码但较少接触Hint的同学们可千万别误认为这只是代码的简单注释。

举几个简单的应用例子:

i. 尽快地显示前5行记录

ii. 再比如说大数据量、分库分表查询中比较常用到的并行查询操作

试验的时候虽然数据量不大,但是效果倒是还挺明显的,速度之间比对接近于1:2。像淘宝这种大数据量应用,每张数据表都有过千万甚至过亿数据的时 候,使用parallel Hint效果会非常明显,当然数据库主机的CPU的核数越多,系统当前负载越低的时候,parallel Hint的优势将会越加明显。

关于Hint的使用,要尽可的自身去体会才能真正理解其作用,在遇到使用Hint的地方大家可以多关注一下,有时间也可以自己做一些调查验证。

【编辑推荐】

  1. Oracle修补Java中存在十年的bug
  2. Oracle承诺对MySQL不会放弃只会更好
  3.  MySQL十大优化技巧
  4. MySQL数据库的无缝迁移

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...
2012年第四季度互联网状况报... [[71653]]  北京时间4月25日消息,据国外媒体报道,全球知名的云平台公司Akamai Te...