Oracle 甲骨文 马克赫德的雄心:到2025年,我们(和另一家公司)将拥有所有的云产业

 

 

企业长期走势

 

 

甲骨文公司联合CEO马克·赫德曾预言,到2025年,有两家公司将拥有服务性软件80%的市场,其中一个将会是Oracle甲骨文。

 

在旧金山Oracle OOW全球大会的第二天,赫德在他的演讲中表示,甲骨文已经在近五年以构想的云结构重写其代码库。这对于面临收入危机的软件企业来说至关重要,它们在过去五年中收入增长不到百分之一。

 

“IT费用基本持平,在2015年下降了5%左右,”赫德说。 “CEO们正考虑短期内的盈利,实际上费用下降而导致收入上升。同时,SaaS公司预计未来收入会增长约15%。”

 

赫德公布了对2025年云市场的五个预测。其中一些是很有可能发生,不过这些都是展示甲骨文的产品组合的一部分。

 

“这不是人造云,”他在其后对的话新闻发布会上说。 “这是对Fusion中间件的改写,现在我们已有98%的软件基于云而重写。”

 

他的第一个预测是, 到2025年,80%的“生产”应用程序将会基于云计算。他说道,虽然目前约为25%,但云应用的低成本和可扩展性将确保它们在十年内成为最受瞩目的应用。

[Read more…]

Oracle 12c 即将认证Windows 10 操作系统平台

http://www.theregister.co.uk/2015/08/17/oracle_to_certify_its_database_v12c_for_windows_10/

 

Oracle 12c 即将认证Windows 10 操作系统平台

开发者可以在win10上正常运行Oracle 12c

 

oracle

2015年8月17日06:02时,Simon Sharwood

 

甲骨文决定让数据库软件支持Windows 10。

 

在“决定声明”(PDF)文件中,有一段大红字体显示,“计划在2015年10月,认证在Windows 10上的Oracle数据库12c(12.1.0.2)”。

 

32位Oracle数据库客户端能运行在Windows 10的32位和64位版本,64位Oracle数据库服务器和客户端将能运行在Windows 10的64位版本上。

 

Oracle 甲骨文“……还计划认证下一个在Windows 10上的主要Oracle数据库12c的版本,该版本支持Windows操作系统。”  但是请注意Oracle 12c将不会有Win 10的32位版本。

 

只有Windows 10 Pro和企业版获得认证。

 

需要注意的是 “由于的Windows 10不是服务器版操作系统,一些Oracle企业级服务器的功能是不支持的,如真正应用集群RAC 。”

 

很公平的一点是:为了确保开发人员可以在许多场景使用其数据库,Oracle几乎肯定这么做,这是很合理的。

 

 

Hadoop 高级MapReduce开发

本文固定链接:https://www.askmac.cn/archives/advanced-mapreduce-development.html

 

高级MapReduce开发

 第五章从我们熟悉的SQL概念的角度讨论了MapReduce的基础知识。学习了如何用MapReduce来解决一些常见的问题。还学习了数据是如何从输入文件中读取,然后在MAP中处理,使用Partitioner传送至Reducers,最后由Reducers处理,并写入HDFS输出文件中去的。

本章探讨SQL的排序和连接特性,这需要引入MapReduce程序更为复杂的概念。我们学习了多个输出文件是如何从单一的MapReduce程序被写入的。最后,我们了解了计数器,它可以用来收集MapReduce程序的统计数据(www.askmac.cn)。

 

MapReduce编程模式

 

本章介绍了在SQL功能背景下,MapReduce设计模式:

  • 排序:当需要输出必须按照一定的标准进行排序时
  • 连接:以各表的相似列值为基础,将各个不同的表组合起来

在看这些案例之前,我们先来简单探讨一下Hadoop框架基本的I / O类。搞清楚这一点,你就能真正了解Hadoop在幕后是如何工作的。

 

   Hadoop I / O介绍

本章介绍了两种常见的基于关系数据库的案例:排序和连接。但首先,你需要了解Hadoop的I / O系统。第5章讨论了以下类:

  • Text
  • IntWritable

 

这些由Hadoop框架提供的类,有非常具体的实现方案,使其能够作为Mappers 和Reducers的键和值被使用。我们首先讨论提供此功能的这些类的特点。在这一过程中,也应该学会如何在Hadoop框架内开发可作为键和值类型使用的自定义类。

用于Mappers 和Reducers中键和值的所有类,都应该能够被序列化为一个原始字节流,以及反序列化回类实例。当被读入Mapper 后,这些类实例被反序列化,然后再序列化到一个字节流,并通过网络发送给Reducer 使用。在Reducer 节点内,这些原始字节被反序列化回Reducer 端的键/值类实例中。该记录由Reducer 端输入键排序(正如第5章中所讨论的,此进程一部分在Mapper 上进行,最终在Reducer上完成),然后提交给Reducer的reduce方法。最后,Reducer输出需要数据,序列化成原始字节,并写入到磁盘(www.askmac.cn)。

 

键和值类的主要特征如下:

  • 用作键和值的类应该能够被序列化和反序列化
  • 用作Reducer端键的类应该能够支持用户自定义排序

[Read more…]

Oracle 12cR2 Oracle Core Database, 核心数据库版本,Native Install for Core Database

oracle将针对Linux提出一个新的安装版本 Oracle Core Datbase ,该Core Database将使用Linux上的原生安装方式 例如rpm或其他package,这意味着你安装Oracle Core Database只需要一条命令 yum install oracle-core-database。这与之前Oracle发布过的Oracle Express版本 Oracle XE 看起来有些相似,但是和Oracle XE的有巨大的差别,因为Oracle XE是一个阉割的不能再阉割的一个版本,而Oracle Core Database不是,Oracle Core Database在Oracle数据库的基本功能上完全没有限制,仅仅限制了部分企业版的option。这意味着Oracle将其核心功能精简到一个Core Database中,并在Linux上以 rpm或其他package形式快速发布。”Oracle Core Database 12gR1 will be packaged as an RPM. RPM is considered the standard way to deploy packages on most Linux systems. Also, RPM was originally known as ‘Redhat Package Manager’ which is now updated and known as ‘RPMPackage Manager’.”

Oracle Core Database的提出显然是为了在12cR2 sharding的预言, Oracle Core Database版本将区别于Oracle EE enterprise edition企业版的较高价格,其本身的出现就是为sharding而设计的,为了让用户能从sharding中充分获得横向扩展能力,显然Oracle要在原有EE企业版的基础上搞出一个即易于安装部署、具备Oracle数据库的核心功能,又与Oracle原有EE企业版有功能差距的这么一个版本。在这个Core Database版本上,Oracle可以大幅降低其license 成本费用,达到Oracle EE企业版的几分之一乃至几十分之一的价格。 毕竟Oracle license许可证的价格是阻碍Oracle Sharding大规模横向扩展的唯一的瓶颈,Oracle真要搞sharding,那么其技术上几乎没有什么瓶颈。

 

Oracle Core Database与Oracle XE的另一些区别是:Oracle XE是免费的,没有官方支持也没有补丁。 而Oracle Core database 是需要license许可证,同时官方也提供支持和补丁。

Oracle Core database将支持的option :

Application Development, Language, andDatabase Features
SQL*Plus
PL/SQL stored procedures and triggers
PL/SQL server pages
PL/SQL native compilation
JDBC drivers
XML support in the database(no JNDI , or Servlet Support)
Native .NET data provider support
ASP.NET Providers
OLE DB support
ODBC support
.NET Stored Procedures
Microsoft Distributed Transaction Coordinator support
Large Page memory support
DML triggers
Database event triggers
Instead-of triggers
Index-organized tables
Temporary table
Objects and Extensibility
LOB (large object) support
Oracle Text
Oracle Locator
Function-based index
Regular Expressions
Sample Scan
SQL Model
SQL Analytic functions
Star query transformation (B-tree indexes only)
Globalization support (excluding Locale Data Customization)
Multiple block size support
Availability/BackupandRecovery Features
Drop column
Rename column, constraint
Flashback Query
Online Backup
Incremental backup and recovery ((no change tracking file or optimized incremental backup capability)
Oracle Logminer
Data Movement/Integration Features
Direct Path Load API
External tables
External procedures
Advanced Queuing
Basic Replication (read-only and updateable materialized view site only)
Distributed queries
Distributed transactions
Generic connectivity
Manageability Features
Automatic Datafile Management
Automatic Memory Management
Automatic Optimizer Statistics Management
Server-generated Alerts

 

 

在原计划中Oracle Core Database 也将分成EE 企业版 和 SE 标准版 2个版本:

 

 

Feature SE1 SE EE Core-EE Core-SE Comments
High Availability
Oracle Fail Safe Y Y Y N N
Oracle RAC One Node N N Y N N Extra Cost Option (EE only)
Oracle Data Guard N N Y N N
Oracle Active Data Guard N N Y N N Extra Cost Option (EE only)
Rolling Upgrades – Patchset, DB and OS N N Y N N
Online Index Rebuild N N Y Y N
Online Index-organized table organization N N Y Y N
Online table redefinition N N Y Y N
Duplexed backup sets N N Y Y N
Block change tracking for fast incremental backup N N Y Y N
Unused block compression in backups N N Y Y N
Block-level media recovery N N Y Y N
Lost-write protection N N Y Y N
Automatic Block Repair N N Y Y N
Parallel Backup and Recovery N N Y Y N
Tablespace point-in-time recovery N N Y Y N
Trial-Recovery N N Y Y N
Fast-start Fault Recovery N N Y Y N
Flashback Table N N Y Y N
Flashback Database N N Y Y N
Flashback Transaction N N Y Y N
Flashback Transaction Query N N Y Y N
Oracle Total Recall N N Y N N Extra Cost Option (EE only)
Scalability
Oracle Real Application

Clusters

N Y Y N N
Automatic Workload Management N Y Y N N
Client side Query Cache N N Y Y N
Query Results Cache N N Y Y N
Pl/SQL Function Result Cache N N Y Y N
In-Memory Database Cache N N Y N N Extra Cost Option (EE only)
Database Smart Flash Cache N N Y Y N Solaris and Oracle Linux only (EE only)
Support for Oracle Exadata N N Y N N

 

 

Feature SE1 SE EE Core-EE Core-SE Comments
Security
Advanced Security Option N N Y N N Extra Cost Option (EE only)
Oracle Label Security N N Y N N Extra Cost Option (EE only)
Virtual Private Database N N Y Y N
Fine-grained auditing N N Y Y N
Oracle Database Vault N N Y N N Extra Cost Option (EE only)
Secure External Password Store N N Y N N
Development Platform
SQLJ Y Y Y N N
Oracle Developer Tools for Visual Studio Y Y Y Y Y Separate download Windows only
Microsoft Distributed Transaction Coordinator support Y Y Y Y Y Windows only
Active Directory Integration Y Y Y Y Y Windows only

AD configuration for Net

 

 

Name Resolution not supported
Native .NET Data Provider – ODP.NET Y Y Y Y Y Windows only
.NET Stored Procedure Y Y Y Y (?) Y Windows only
Manageability
Oracle Change Management

Pack

N N Y N N Extra Cost Option (EE only)
Oracle Config Management Pack N N Y N N Extra Cost Option (EE only)
Oracle Diagnostics Pack N N Y N N Extra Cost Option (EE only)
Oracle Tuning Pack N N Y N N Extra Cost Option (EE only)
Oracle Provisioning and Patch Automation Pack N N Y N N Extra Cost Option (EE only)
Oracle Real Application Testing N N Y N N Extra Cost Option (EE only)
Database Resource Manager N N Y Y N
Instance Caging N N Y Y N
SQL Plan Management N N Y Y N

 

 

Feature SE1 SE EE Core-EE Core-SE Comments
VLDB, Data Warehousing, BI
Oracle Partitioning N N Y N N Extra Cost Option (EE only)
Oracle OLAP N N Y N N Extra Cost Option (EE only)
Oracle Data Mining N N Y N N Extra Cost Option (EE only)
Oracle Advanced Compression N N Y N N Extra Cost Option (EE only)
Basic Table Compression N N Y Y N
Deferred Segment Creation N N Y Y N
Bitmapped Index, bitmapped join index, and bitmap plan conversions N N Y Y N
Parallel Query/DML N N Y Y N
Parallel Statistics Gathering N N Y Y N
Parallel index build/scans N N Y Y N
Parallel Data Pump export/import N N Y Y N
In-memory parallel  execution N N Y Y N
Parallel  Statement Queuing N N Y Y N
Parallel Capture and Apply via XStream N N Y Y (?) N
Transportable tablespaces, including cross-platform N N Y Y N Import supported into SE1, SE, and Core-SE
Summary Management – Materialized View Query Rewrite N N Y Y N
Asynchronous Change Data Capture N N Y N N
Integration
Basic replication Y Y Y Y Y SE1/SE/Core-SE: read- only, updateable MV
Advanced Replication N N Y Y N Multimaster replication
Oracle Streams Y Y Y N N SE1/SE: no capture from redo
Database Gateways Y Y Y N N Separate product license(EE only)
Messaging Gateway N N Y N N
Networking
Oracle Connection Manager N N Y N N
Infiniband Support N N Y Y (?) N
Content Management
Oracle Spatial N N Y N N Extra Cost Option (EE only)
Semantic Technologies (RDF/OWL) N N Y N N Requires Oracle Spatial and Partitioning Option (EE only)
Spatial and Location Data
Parallel spatial index builds N N Y N N
Multimaster replication of SDO_GEOMETRY objects N N Y N N Need more evaluation if we need to support it
Partitioned Spatial Indexes N N Y N N Requires Oracle Partitioning (EE only)

 

1.1          Additional Feature Restrictions for Core DB (based on 11.2 features)

  • No Java in the

 

  • Only partial support of Oracle Context, same as XE version
    • English/French knowledge bases not supplied, nor are the following features: RULE_CLASSIFIER, SVM_CLASSIFIER and KMEAN_CLUSTERING
  • No support of Oracle interMedia and Ultra
  • Partial XML Support in DB
    • No XQuery, JNDI or servlet support
    • No https support for XDB http listener
  • No XDK
  • No support of Database Web Services
  • No pre-compilers support
  • No Assistants
    • DB creation using scripts
    • DB Upgrade using manual
  • Networking
    • LDAP naming configuration not
    • All configuration to be done manually, no tools
  • Security
    • LDAP over SSL not
    • Enterprise User Security and Wallet Manager not
    • No encryption support (SecureFiles, Backup).
  • ASM not
  • No JMS support for
  • Workspace Manager and OWB (Oracle Warehouse Builder) not
  • Perl and Bali libraries not
  • Application Express and SQL Developer not shipped with Core. But they can be installed on top of Core using separate packages available over
  • Oracle Administration Assistant for Windows not
  • No Locale

1.2          Feature Restrictions (based on 12.1 features)

 

  • All options (on top of EE) will be excluded by
  • All sub features added on top of 2 excluded feature list (listed in 1.1 and 1.2) are excluded.
  • DB Consolidation (Pluggable Databases) not
  • Global Service Management not
  • End-to-end Application Continuity not
  • DRDA Application Server for Oracle not
  • No support of these 1 enhancements: Auditing, Real Application Security, Encryption, ILM, XBRL, SQL Test Case Builder.

1.3          Open Issues

  • Need to evaluate the following:
    • Exclude .NET Stored Procedure Support and Infiniband support, if
    • Evaluate 1 RMAN backup enhancements and see what can be included.
    • Evaluate how Core DB can used as a pluggable

Mongodb 为复制集新增节点

概览

 

本文描述了如何为已有的 replica set 新增节点。有关复制集部署的模式的信息,参见复制集部署架构文档。

最多可参与投票的节点数

一个复制集最多可以拥有7个 参与投票的节点 。如果要为已经拥有7个参与投票节点的复制集新增节点,我们需要将新增的节点设置为 不参与投票的节点 或者将 已有的投票节点 的票数清除。

初始化脚本

在生产环节中,我们可以修改 init script 来管理节点。

 

已有节点

我们可以使用这些命令来为现有复制集新增节点。我们还可以使用命令 “re-add” 来添加一个已经被移除了的节点。如果这个被移除的节点中的数据较新,它能很快恢复并赶上主节点的数据。

数据文件

如果我们有已有节点的备份或者快照,我们可以可以将数据文件( dbPath 文件夹中) 复制到新的机器并使用它们快速的建立一个新的节点。这些数据文件必须是:

  • 同个复制集中可用节点的数据备份。参见 用文件系统快照备份并恢复 以获得更多信息。

    重要

    推荐使用文件快照的方式而不是来 mongodumpmongorestore 来为复制集新成员做数据备份。

  • 比在主节点oplog最旧的操作更近。新成员必须能通过从主节点的oplog应用操作获取当前数据。

需求

  1. 一个可用的复制集。

  2. 一个拥有数据集的MongoDB节点,且可以与现有复制集通讯。

否则,请参考 安装教程 和 部署复制集

 

[Read more…]

Oracle 11g OCM考试考点分析 grid control 架构

 本文永久链接地址: https://www.askmac.cn/archives/oracle-11g-ocm-grid-control-architecture.html

 

7.grid control 架构

 

7.1 目标

 

在完成这个课程后,你应该可以做:

  • 描述grid control中不同的组件
  • 解释grid control构架
  • 列出被grid control管理的目标类型
  • 在一个grid control 环境中讨论最大可用性架构

7.2 grid control 架构

grid control主要是由3部分组成:

  • oracle 管理资料库
  • 一个或者多个oracle管理服务器
  • 一个或多个oracle管理代理

你可以安装grid control 在一个单独的服务器,或者在多个服务器,根据业务需要和管理的企业规模。

grid control 控制台是一个WEB接口,可以让你在数据中心管理和监控目标。

 

oracle 管理代理(简称为代理),用来监控目标的健康。为了健康目标,你需要在那些运行目标的主机上安装代理。不管运行多少目标,你只需要在每一个主机上安装一个代理–例如,在一个主机上要监控oracle数据库和oracle weblogic服务器,你只需要一个代理。代理收集有关目标可用性、配置和性能的信息,然后通过oracle 管理服务(OMS)发送到oracle管理资料库。每个管理代理在任何时候,只于一个资料对话。

 

OMS是一个JEE Web应用程序使用 Grid control 控制台。它接收来自一个或多个代理的信息,并将它保存到oracle 管理资料库。OMS处理每个目标的监控和作业信息。同时OMS从管理资料库中检索数据,将其转换为HTML为游览器所显示。

oracle管理资料库包含了一系列grid control 方案对象。它由例如:数据库jobs,包,存储过程,视图和2个数据库表空间来容纳所有关于管理员,目标,和被管理的应用的所有可用信息。

[Read more…]

Hadoop Architecture 架构

本文固定链接:https://www.askmac.cn/archives/hadoop-architecture.html

 

本文是官方文档的翻译:http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/HdfsDesign.html

1介绍

 

HDFS 是一个分布式的文件系统,被设计运行在商业硬件上。它和现有的分布式文件系统有很多相似之处。但是,也于其他的分布式文件系统有显著的差异。HDFS是高度容错的,并且被设计来部署到底成本的硬件上。HDFS提供高吞吐量访问应用程序数据,并适用于那些有很大数据集的应用程序。HDFS放松一些POSIX请求使得流媒体访问文件系统数据。HDFS最初的基础设施构建是为了Apache Nutch搜索引擎项目。HDFS是Apache Hadoop核心的项目部分。该项目的URL是http://hadoop.apache.org/

 

 

 

2 假设和目标

 

2.1 硬件故障

 

硬件故障是标准的而不是例外。一个HDFS实例可能包括数百或数千个服务器,每一个存储文件系统的部分数据。事实上,这里有大量的组件,每个组件都有一个不一样的失效概率,意味着HDFS的一些组件总是不能提供功能。因此,故障的快速检测,自动的恢复是HDFS的一个核心构架目标(www.askmac.cn)。

 

2.2 流数据访问

运行在HDFS中的应用程序需要流媒体来访问他们的数据集。它们不是一般运行于通用文件系统的通用应用程序。HDFS被设计为批处理,而不是由用户交互使用。重点是高吞吐量的数据访问,而不是低延迟的数据访问。POSIX强加的一些需求并不是HDFS的应用程序所需要的。POSIX在一些关键领域中的词义已经被交换,来增加数据吞吐速率。

 

2.3 大数据集

 

那些在HDFS上运行的应用程序由大量的数据集。HDFS中一个典型的文件在10亿字节到百万兆字节大小。因此,HDFS被调整支持大文件。它应该提供高聚集数据带宽,并且在一个集群中有数百个节点的规模。它应该支持在一个单一的实例有数以百万计的文件。

[Read more…]

【MySQL学生手册】协同(Advisory)锁

本文地址:https://www.askmac.cn/archives/mysql-advisory-lock.html

 

7.3 协同(Advisory)锁

协同锁没有能力避免来自其它客户端的数据访问,但它们基于一种概念,即所有客户端会使用一个约定的规则来协同使用一种资源。这种约定的规则可以是一个锁名,即一个简单的字符串。当这个名字被锁住,此协同锁认为被获取。那么了解到此锁状态的其它的客户端就会抑制并避免其进行和持有锁的用户具有冲突的操作。

 

协同锁使用了一套功能函数实现。为了获取锁,使用GET_LOCK()功能:

第一个参数使用一个字符串定义了被锁的名字,第二个参数是一个以秒为单位的时间值,定义了如果锁无法立刻被获取的情况下,最多等待多长时间。GET_LOCK()但执行成功则返回1,不过如果时间过后,锁还是未能获取,则返回0,执行中异常报错则返回空值。

获取到协同锁的客户端可以调用RELEASE_LOCK()功能来释放锁:

如果锁被成功释放,则RELEASE_LOCK()返回1,如果需要释放的锁是别的客户端锁,则返回0,返回NULL则说明当前名字没有锁。

我们还可以再次通过调用GET_LOCK()来释放之前的锁,或者直接关闭其和服务端之间的连接也可以达到释放锁的目的。

[Read more…]

Oracle 11g OCM考试考点分析 SPM SQL执行计划管理

本文固定链接:https://www.askmac.cn/archives/oracle-11g-ocm-spm.html

 

 

6  SQL执行计划管理

 

 

6.1目标

 

在完成这一课后,你应该能够做下列事情:

  • 设置SQL计划管理
  • 设置各种各样的SQL计划管理场景
  • 迁移存储大纲到SQL计划基线

 

 

6.2 SQL 执行计划管理:概述

 

  • SQL 执行计划管理是由自动控制SQL计划发展而来
  • 优化器自动的管理SQL计划基线

–只有知道和验证过的计划被使用

  • 计划变更被自动验证

–只用比较过或者更好的计划在之后使用。

  • 可以从SQL性能分析中的STS中表示重要的SQL
  • 最主要的收益是通过避免执行计划的回退来保证系统性能的稳定。

 

当一个SQL语句的执行计划变更时有潜在的性能风险。一个SQL计划的变更可以是由多种原因引起,例如优化器版本,优化器统计信息,优化器参数,方案定义,系统配置,和SQL 概要文件的创建。

 

各种计划控制技术(例如存储大纲和SQL概要文件)已经在过去的oracle数据库版本中介绍过,来解决由于计划的变化带来的性能下降问题。但是,这些技术都非活动进程,需要人工来干预。

 

SQL计划管理是oracle11g中介绍的一个新特性,可以让系统自动的控制SQL计划,从管理 SQL 计划基线演化而来。当这个特性被开启,一个新生产的SQL 计划,如果被证明这样做不会导致性能回退,那么可以整合为一个SQL 计划基线。在执行一个SQL语句期间,只有对应为SQL计划基线的一部分的计划能被使用。和在这课之后描述的那样,SQL 计划基线可以自动的加载或可以被作为SQL 优化集的种子。在这个课程的后面将覆盖多个场景。

 

SQL 计划管理特性主要的好处是通过避免计划回退来保证系统性能的稳定性。除此之外,其节省了DBA的时间,通常是用来识别和分析SQL性能的下降和寻找可行的解决方案。

[Read more…]

【MySQL学生手册】显式(Explicit)表锁

本文地址:https://www.askmac.cn/archives/mysql-explicit-lock.html

7.2 显式(Explicit)表锁

客户端可以使用两个语句来管理显式表锁。LOCK TABLES命令会获取表锁,而UNLOCK TABLES命令则会释放锁。对于显式锁的获取,我们可以具体在某些场景中使用:

 

  • 一个隐式锁仅在对于(非事务引擎下的)单个查询执行时间内起到作用。但是对于希望运行多语句跟新且同时不被其它客户端干扰的情况,则不适用。而在执行由事务引擎支持的事务时,锁可以在整个事务时间范围起作用,为了达到这样的目的,你可以获取一个显式锁来维持其效果直到你释放它,这样其它客户端就不能修改你锁住的那些表了。
  • 使用显式锁,可以在将多个语句作为一组进行执行时发挥作用,从而提高效率。首先,服务端减少了获取和释放锁的工作,因为其不必未每个语句都进行其锁的操作。它仅是在操作的最开始时候获取所有所需的锁,并在事务最后释放它们即可。其二,对于那些修改数据的语句,索引刷新操作次数降低了。例如,如果你执行多个INSERT语句,且都使用隐式锁,那么索引的刷新操作将在每个语句之后进行。如果你对表使用了显式锁,那么索引的刷新仅会在所有插入操作完成并释放锁后进行,这样所产生的磁盘活动就更少了。

 

LOCK TABLES语句可以对指定的表进行锁定,并制定索要获取的锁的类型。如,以下语句会在Country表上要求获取读锁,并对City表要求获取写锁:

mysql> LOCK TABLES Country READ, City WRITE;

为了能成功执行lock tables命令,你必须要有lock tables权限,且需要每个被锁表的select权限。

 

如果所要锁定的表正在被使用,那么执行lock tables会陷入等待,在获取到所需的锁之前它都不会返回。

[Read more…]

沪ICP备14014813号-2

沪公网安备 31010802001379号