博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《MySQL必知必会》笔记 事务、安全及性能等
阅读量:7063 次
发布时间:2019-06-28

本文共 1616 字,大约阅读时间需要 5 分钟。

 二十六 管理事务处理

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;DELETE FROM orderitems WHERE order=20010;DELETE FROM orders WHERE order_num=20010;commit;

注意“隐含事务关闭”。

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

SET autocommit=0;//直到被重新设置为真为止。

注意 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.最重要的规则是,每条规则在某些条件下都会被打破。

本文转自邴越博客园博客,原文链接:http://www.cnblogs.com/binyue/p/3721246.html,如需转载请自行联系原作者

你可能感兴趣的文章
内部存储到外部存储
查看>>
SSH注解整合
查看>>
爬取全部的校园新闻
查看>>
开通自己的github
查看>>
共轭方向法、共轭梯度法
查看>>
余数专题
查看>>
洛谷2764:[网络流24题]最小路径覆盖问题——题解
查看>>
Spring Data JPA在Spring Boot中的应用
查看>>
分布式服务框架 Zookeeper -- 管理分布式环境中的数据
查看>>
使用WebClient 或者 HttpWebRequest均报:"The Remote name can't be solved"
查看>>
hibernate---一对一单向外键关联--XML
查看>>
用openssl生成含有中文信息的证书
查看>>
常用开源框架中设计模式使用分析
查看>>
DotNetTextBoxV6.0.2在线编辑器控件(For Asp.net2.0/3.0/3.5)免费版发布!
查看>>
J - Joyful -数学期望
查看>>
作业类型维护流程(CO)
查看>>
图论算法----网络流
查看>>
【Unity Shaders】ShadowGun系列之二——雾和体积光
查看>>
面向对象第四次博客
查看>>
【BZOJ4870】组合数问题 [矩阵乘法][DP]
查看>>