MySQL的优化(七)

三十一、事务的例子

MyIASM表如何进行事务处理:

mysql> LOCK TABLES trans READ, customer WRITE;

mysql> select sum(value) from trans where customer_id=some_id;

mysql> update customer set total_value=sum_from_previous_statement

where customer_id=some_id;

mysql> UNLOCK TABLES;

BDB表如何进行事务:

mysql> BEGIN WORK;

mysql> select sum(value) from trans where customer_id=some_id;

mysql> update customer set total_value=sum_from_previous_statement

where customer_id=some_id;

mysql> COMMIT;

注意你可以通过下列语句回避事务:

UPDATE customer SET value=value+new_value WHERE customer_id=some_id;

三十二、使用REPLACE的例子

REPLACE的功能极像INSERT,除了如果一条老记录在一个唯一索引上具有与新纪录相同的值,那么老记 录在新纪录插入前则被删除。不使用 SELECT 1 FROM t1 WHERE key=#

IF found-row

LOCK TABLES t1

DELETE FROM t1 WHERE key1=#

INSERT INTO t1 VALUES (...)

UNLOCK TABLES t1;

ENDIF

而用

REPLACE INTO t1 VALUES (...)

时间: 2024-10-31 03:21:41

MySQL的优化(七)的相关文章

MySQL性能优化总结(转)

一.MySQL的主要适用场景 1.Web网站系统 2.日志记录系统 3.数据仓库系统 4.嵌入式系统 二.MySQL架构图:   三.MySQL存储引擎概述 1)MyISAM存储引擎 MyISAM存储引擎的表在数据库中,每一个表都被存放为三个以表名命名的物理文件.首先肯定会有任何存储引擎都不可缺少的存放表结构定义信息的.frm文件,另外还有.MYD和.MYI文件,分别存放了表的数据(.MYD)和索引数据(.MYI).每个表都有且仅有这样三个文件做为MyISAM存储类型的表的存储,也就是说不管这个

MySQL数据库优化技术之索引使用技巧总结_Mysql

本文实例总结了MySQL数据库优化技术的索引用法.分享给大家供大家参考,具体如下: 这里紧接上一篇<MySQL数据库优化技术之配置技巧总结>,进一步分析索引优化的技巧: (七)表的优化 1. 选择合适的数据引擎 MyISAM:适用于大量的读操作的表 InnoDB:适用于大量的写读作的表 2.选择合适的列类型 使用 SELECT * FROM TB_TEST PROCEDURE ANALYSE()可以对这个表的每一个字段进行分析,给出优化列类型建议 3.对于不保存NULL值的列使用NOT NUL

Mysql性能优化方案分享_Mysql

网上有不少mysql 性能优化方案,不过,mysql的优化同sql server相比,更为麻烦,同样的设置,在不同的环境下 ,由于内存,访问量,读写频率,数据差异等等情况,可能会出现不同的结果,因此简单地根据某个给出方案来配置mysql是行不通的,最好能使用status信息对mysql进行具体的优化. mysql> show global status; 可以列出MySQL服务器运行各种状态值,另外,查询MySQL服务器配置信息语句:mysql> show variables; 一.慢查询 m

mysql 性能优化方案

网上有不少mysql 性能优化方案,不过,mysql的优化同sql server相比,更为麻烦与负责,同样的设置,在不同的环境下 ,由于内存,访问量,读写频率,数据差异等等情况,可能会出现不同的结果,因此简单地根据某个给出方案来配置mysql是行不通的,最好能使用status信息对mysql进行具体的优化,网上找了一篇文章,分页分得乱七八糟的,只能转到博客. mysql> show global status; 可以列出mysql服务器运行各种状态值,另外,查询mysql服务器配置信息语句: m

《MySQL管理员指南》之 MySQL的优化

MySQL优化 (本文是Monty在O'Reilly Open Source Convention 2000大会上的演讲) 一.我们可以且应该优化什么? 硬件 操作系统/软件库 SQL服务器(设置和查询) 应用编程接口(API) 应用程序 -------------------------------------------------------------------------------- 二.优化硬件 如果你需要庞大的数据库表(>2G),你应该考虑使用64位的硬件结构,像Alpha.S

一些Mysql的优化经验

mysql|优化  一些 Mysql 的优化经验    1. 从数据库结构做起1. 字段类型的定义时遵循以下规则:1. 选用字段长度最小2. 优先使用定长型3. 尽可能的定义 "NOT NULL" 4. 数值型字段中避免使用 "ZEROFILL" 5. 如果要储存的数据为字符串, 且可能值已知且有限, 优先使用 enum 或 set 2. 索引的优化至关重要(以下如果没有特殊说明, 均指查询密集的情况)     1. 被索引的字段的长度越小, 该索引的效率越高2.

从编译到工具:几种mysql的优化方法

mysql|编译|优化 一.在编译时优化mysql 如果你从源代码分发安装mysql,要注意,编译过程对以后的目标程序性能有重要的影响,不同的编译方式可能得到类似的目标文件,但性能可能相差很大,因此,在编译安装mysql适应仔细根据你的应用类型选择最可能好的编译选项.这种定制的mysql可以为你的应用提供最佳性能. 技巧:选用较好的编译器和较好的编译器选项,这样应用可提高性能10-30%.(mysql文档如是说) 1.1.使用pgcc(pentium gcc)编译器 该编译器(http://ww

MySQL的优化(五)

二十一.MySQL表高速缓存工作原理 每个MyISAM表的打开实例(instance)使用一个索引文件和一个数据文件.如果表被两个线程使用或在 同一条查询中使用两次,MyIASM将共享索引文件而是打开数据文件的另一个实例. 如果所有在高速缓存中的表都在使用,缓存将临时增加到比表缓存尺寸大些.如果是这样,下一个被 释放的表将被关闭. 你可以通过检查mysqld的Opened_tables变量以检查表缓存是否太小.如果该值太高,你应该增大表高 速缓存. 二十二.MySQL扩展/优化-提供更快的速度

mysql数据库优化总结

1. 优化你的MySQL查询缓存在MySQL服务器上进行查询,可以启用高速查询缓存.让数据库引擎在后台悄悄的处理是提高性能的最有效方法之一.当同一个查询被执行多次时,如果结果是从缓存中提取,那是相当快的. 但主要的问题是,它是那么容易被隐藏起来以至于我们大多数程序员会忽略它.在有些处理任务中,我们实际上是可以阻止查询缓存工作的. 1. // query cache does NOT work 2. $r = mysql_query("SELECT username FROM user WHERE

MySQL中优化sql语句查询常用的30种方法

本篇文章是对MySQL中优化sql语句查询常用的30种方法进行了详细的分析介绍,需要的朋友参考下   1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描. 3.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is null 可以