有哪些常用的MySQL优化方法

  

下面讲讲关于有哪些常用的MySQL优化方法,文字的奥妙在于贴近主题相关。所以,闲话就不谈了,我们直接看下文吧,相信看完有哪些常用的MySQL优化方法这篇文章你一定会有所受益又是;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,有哪些常用的MySQL优化方法

1。选取最适用的字段属性
表中字段的宽度设得尽可能小:char的上限为255字节(固定占用空间),varchar的上限65535字节(实际占用空间),文本的上限为65535。
尽量把字段设置为NOT NULL,执行查询的时候,数据库不用去比较零值。

2。使用连接(加入)来代替子查询(子查询)
连接(加入)之所以更有效率一些,是因为MySQL不需要在内存中创建临时表来完成这个逻辑上的需要两个步骤的查询工作(联合查询的条件加索引更快)。

3。使用联合(联盟)来代替手动创建的临时表
把需要使用临时表的两条或更多的选择查询合并的一个查询中。
选择名字,电话从客户联盟选择名字,生日,作者从联盟选择名称,供应商从产品;

4。事务
尽管我们可以使用子查询(子查询),连接(加入)和联合(联盟)来创建各种各样的查询,但不是所有的数据库操作都可以只用一条或少数几条SQL语句就可以完成的。更多的时候是需要用到一系列的语句来完成某种工作。
作用是:要么语句块中每条语句都操作成功,要么都失败。换句话说,就是可以保持数据库中数据的一致性和完整性。事物以开始关键字开始,提交关键字结束。在这之间的一条SQL操作失败,那么,回滚命令就可以把数据库恢复到开始开始之前的状态。

5。锁定表
尽管事务是维护数据库完整性的一个非常好的方法,但却因为它的独占性,有时会影响数据库的性能,尤其是在很大的应用系统中。由于在事务执行的过程中,数据库将会被锁定,因此其它的用户请求只能暂时等待直到该事务结束。
锁表库存写
从库存
WHEREItem选择数量=& # 39;书# 39;;

更新库存组数量=11
WHEREItem=& # 39;书# 39;;

解锁表这里,我们用一个选择语句取出初始数据,通过一些计算,用更新语句将新值更新到表中,包含有写关键字的锁表语句可以保证在解锁表命令被执行之前,不会有其它的访问来对存货进行插入,更新或者删除的操作。

6,使用外键
锁定表的方法可以维护数据的完整性,但是它却不能保证数据的关联性。这个时候我们就可以使用外键,例如,外键可以保证每一条销售记录都指向某一个存在的客户。在这里,外键可以把customerinfo表中的CustomerID映射到salesinfo表中CustomerID,任何一条没有合法CustomerID的记录都不会被更新或插入到salesinfo中。

 customerinfo创建表
  (
  CustomerID INT非空,
  主键(CustomerID)
  )=INNODB型;
  创建表salesinfo
  (
  SalesID INT非空,
  CustomerID INT非空,
  主键(CustomerID, SalesID),
  外键引用customerinfo CustomerID
  DELETECASCADE (CustomerID)
  )类型=INNODB; 

注意例子中的参数”级联删除”。该参数保证当customerinfo表中的一条客户记录被删除的时候,salesinfo表中所有与该客户相关的记录也会被自动删除。如果要在MySQL中使用外键,一定要记住在创建表的时候将表的类型定义为事务安全表INNODB类型。该类型不是MySQL表的默认类型。定义的方法是在创建表语句中加上类型=INNODB。

7。使用索引
查询语句当中包含有MAX ()、MIN()和ORDERBY这些命令的时候,性能提高更为明显。
索引应建立在那些将用于加入,在判断和按排序的字段上。尽量不要对数据库中某个含有大量重复的值的字段建立索引。对于一个ENUM类型的字段来说,出现大量重复值是很有可能的情况,例如customerinfo中的“省”。字段,在这样的字段上建立索引将不会有什么帮助;相反,还有可能降低数据库的性能。

8。优化的查询语句
选择从订单年(向)& lt; 2001;
选择从订单OrderDate<?001 - 01 - 01 -“;

选择从库存数量/7 & lt; 24;从库存
选择Amount<24 * 7;
避免在查询中让MySQL进行自动类型转换,因为转换过程也会使索引变得不起作用。

对于以上有哪些常用的MySQL优化方法相关内容,大家还有什么不明白的地方吗?或者想要了解更多相关,可以继续关注我们的行业资讯板块。

有哪些常用的MySQL优化方法