二十六 管理事务处理

1.并非所有引擎都支持事务处理,如MyIASM和InnoDB,关于事务处理的几个术语:
事务(Transaction)指一组sql语句;
回退(rollback)指撤销指定SQL语句的过程;
提交(commit)指将为存储的SQL语句结果写入数据库表;
保留点(savepoint)指事务处理中设置的临时占位符(placeholder),可以对它发布回退。
2.管理事务处理的关键在于将SQL语句组分解为逻辑块,并明确规定数据何时应该回退,何时不应该回退
3.MySQL使用如下标志事务的开始:
START TRANSACTION
ROLLBACK用来回退MySQL语句。
如:

SELECT * FROM ordertotals;//显示该表不为空
START TRANSACTION;//开始事务
DELETE FROM ordertotals;//删除全部数据
ROLLBACK;//回退
SELECT * FROM ordertotals;//显示该表不空

事务处理用来管理INSERT/UPDATE/DELETE语句,不能回退CREATE/DROP操作,当然还有SELECT;

4.使用COMMIT,一般的MySQL语句都是直接针对数据库表执行和编写的,即所谓的隐含提交(implicit commit),
提交操作室自动的。在事务处理中,提交不会隐含的进行。
如:

START TRANSACTION;
;
;
commit;

注意“隐含事务关闭”。
5.使用保留点。
如:SAVEPOINT delete1;
ROLLBACK TO delete1;
保留点越多越好,在事务处理完成后保留点可以自动释放。
6.更改默认的提交行为。为了使MySQL不自动提交更改,
可以:

;//直到被重新设置为真为止。

注意 autocommit 标志是针对每个连接而不是服务器的。

三十 改善性能

1.遵循MySQL的硬件建议
2.使用过程中可能需要调优,查看当前设置,可以使用SHOW VARIABLES;SHOW STATUS等;
3.MySQL是一个对用户多线程的DBMS,如果多任务中的某一个执行缓慢,会影响所有请求的执行,

SHOW PROCESSLIST;

可以显示所有活动进程,进而执行KILL操作;
4.总是有不止一种方法编写同一条SELECT语句;
5.使用EXPLAIN语句让MySQL解释如何执行一条SQL语句;
6.一般来说,存储过程要比执行独立的各条SQL语句要快;

7.应该总是使用正确的数据类型;绝不要检索必需求还多的数据。换言之,不要使用select *(除非你真正需要某个列);
8.某些操作支持可选的DELAYED关键字,如果使用它,将把控制立即返回给调用程序,并且一旦有可能就实际执行该操作,即延迟插入;
9.在导入数据时,应该关闭自动提交。也可以删除索引,在导入完成后再重建;
10.必须索引数据库表以改善数据检索的性能。如果一个简单的WHERE子句返回结果的时间过长,则可以断定其中几个列是需要索引的对象;
11.SELECT不应该使用过多的OR条件,使用UNION连接子句代替,会看到极大的性能改善;
12.索引改善数据检索的性能,但损害数据插入、删除和更新的性能。如果某些表收集数据但是不经常被检索,在这之前不应该索引它们;
13.LIKE很慢,最好使用FULLTEXT代替;
14.最重要的规则是,每条规则在某些条件下都会被打破。

《MySQL必知必会》笔记 事务、安全及性能等的更多相关文章

  1. 《mysql必知必会》读书笔记--存储过程的使用

    以前对mysql的认识与应用只是停留在增删改查的阶段,最近正好在学习mysql相关内容,看了一本书叫做<MySQL必知必会>,看了之后对MySQL的高级用法有了一定的了解.以下内容只当读书 ...

  2. 《MySQL必知必会》学习笔记——前言

    前言 MySQL已经成为世界上最受欢迎的数据库管理系统之一.无论是用在小型开发项目上,还是用来构建那些声名显赫的网站,MySQL都证明了自己是个稳定.可靠.快速.可信的系统,足以胜任任何数据存储业务的 ...

  3. MySQL必知必会(第4版)整理笔记

    参考书籍: BookName:<SQL必知必会(第4版)> BookName:<Mysql必知必会(第4版)> Author: Ben Forta 说明:本书学习笔记 1.了解 ...

  4. MySQL必知必会1-20章读书笔记

    MySQL备忘 目录 目录 使用MySQL 检索数据 排序检索数据 过滤数据 数据过滤 用通配符进行过滤 用正则表达式进行搜索 创建计算字段 使用数据处理函数 数值处理函数 汇总数据 分组数据 使用子 ...

  5. 《MySQL必知必会》学习笔记整理

    简介 此笔记只包含<MySQL必知必会>中部分章节的整理笔记.这部分章节主要是一些在<SQL必知必会>中并未讲解的独属于 MySQL 数据库的一些特性,如正则表达式.全文本搜索 ...

  6. MySQL必知必会复习笔记(1)

    MySQL必知必会笔记(一) MySQL必知必会是一本很优秀的MySQL教程书,并且相当精简,在日常中甚至能当成一本工作手册来查看.本系列笔记记录的是:1.自己记得不够牢的代码:2.自己觉得很重要的代 ...

  7. MySQL使用和操作总结(《MySQL必知必会》读书笔记)

    简介 MySQL是一种DBMS,即它是一种数据库软件.DBMS可分为两类:一类是基于共享文件系统的DBMS,另一类是基于客户机——服务器的DBMS.前者用于桌面用途,通常不用于高端或更关键应用. My ...

  8. 读《MySql必知必会》笔记

    MySql必知必会 2017-12-21 意义:记录个人不注意的,或不明确的,或不知道的细节方法技巧,此书250页 登陆: mysql -u root-p -h myserver -P 9999 SH ...

  9. MySql必知必会内容导图

    <MySQL必知必会>从介绍简单的数据检索开始,逐步深入一些复杂的内容,包括联结的使用.子查询.正则表达式和基于全文本的搜索.存储过程.游标.触发器.表约束,等等.通过重点突出的章节,条理 ...

  10. 读《MySQL必知必会》我学到了什么?

    前言 最近在写项目的时候发现自己的SQL基本功有些薄弱,遂上知乎查询MYSQL关键字,期望得到某些高赞答案的指点,于是乎发现了 https://www.zhihu.com/question/34840 ...

随机推荐

  1. json 数据交换格式与java

    http://wiki.mbalib.com/wiki/数据交换 数据交换是指为了满足不同信息系统之间数据资源的共享需要,依据一定的原则,采取相应的技术,实现不同信息系统之间数据资源共享的过程. 数据 ...

  2. linux桌面应用开发之折腾

    1 起因 需要开发一个wifi定位的应用,最先在android下搞,后来因为多网卡的原因要换平台,经历了windows,最终选择用kaili linux.debian系的linux,开发桌面应用怎么办 ...

  3. 将ECSHOP会员注册页面的Email修改成非必填项

    将ECSHOP会员注册页面的Email修改成非必填项 ECSHOP教程/ ecshop教程网(www.ecshop119.com) 2011-07-29   有人说,在后台的 “会员注册项设置 ”里面 ...

  4. 如何起草你的第一篇科研论文——应该做&避免做

    如何起草你的第一篇科研论文——应该做&避免做 导语:1.本文是由Angel Borja博士所写.本文的原文链接在这里.感谢励德爱思唯尔科技的转载,和刘成林老师的转发.2.由于我第二次翻译,囿于 ...

  5. --hdu 2124 Repair the Wall(贪心)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2124 Ac code : #include<stdio.h> #include<st ...

  6. mysql 服务无法启动 服务没有报告任何错误

    问题 解决方法 1.必须保证 mysql 下不存在 data 文件夹,如果存在 data 文件夹,则先删除 mysql 下的 data 文件夹,然后初始化 mysqld --initialize 服务 ...

  7. C++对象模型:单继承,多继承,虚继承

    什么是对象模型 有两个概念可以解释C++对象模型: 语言中直接支持面向对象程序设计的部分.对于各种支持的底层实现机制. 类中成员分类 数据成员分为静态和非静态,成员函数有静态非静态以及虚函数 clas ...

  8. js Float 精度

    1.加法 //加法 function add(arg1,arg2){ var r1,r2,m; try{r1=arg1.toString().split(".")[1].lengt ...

  9. ajax 如何做到 SEO 友好

    我猜你是在网络上搜索“ajax如何被搜索引擎收录”.“ajax SEO”.“ajax SEO友好”等关键词来到这里的.你可能已经很疲惫了,因为前段时间我也这样搜索,但是我发现搜索到的内容质量不高,有的 ...

  10. 编译安装apache-2.4.18

    apache安装时, 必须要apr和apr-util, 这两个包是必须的 当下载apache的版本过高, 如: apache-2.4.18, 那么要求的apr或apu=apr-util版本将至少在1. ...