MySQL数据库的基本结构与索引的优化方案

数据库 MySQL
此文章主要向大家描述的是MySQL数据库的基本结构,MySQL数据库索引的优化方案与查询语句的优化这些内容,下面就是文章的主要内容描述。

以下的文章主要介绍的是MySQL数据库的基本结构,MySQL数据库索引的优化方案与查询语句的优化这些内容。这些相关的内容说对于数据库新手来说可以说意义很大,以下就是文章的具体内容描述。

MySQL数据库结构

 

字段类型的定义时遵循以下规则:

选用字段长度最小

 

优先使用定长型

 

尽可能的定义 "NOT NULL"

 

数值型字段中避免使用 "ZEROFILL"

 

如果要储存的数据为字符串, 且可能值已知且有限, 优先使用 enum 或 set

 

MySQL数据库索引的优化

被索引的字段的长度越小, 该索引的效率越高

被索引的字段中, 值的重复越少, 该索引的效率越高

 

查询语句中, 如果使用了 "group" 子句, 根据其中字段出现的先后顺序建立多字段索引

 

查询语句中, 如果使用了 "distinct", 根据其中字段出现的先后顺序建立多字段索引

 

"where" 子句中, 出现对同一表中多个不同字段的 "and" 条件时, 按照字段出现的先后顺序建立多字段索引

 

"where" 子句中, 出现对同一表中多个不同字段的 "or" 条件时, 对重复值最少的字段建立单字段索引

 

进行 "内/外连接" 查询时, 对 "连接字段" 建立索引

 

对 "主键" 的 "unique" 索引 毫无意义, 不要使用

 

被索引字段尽可能的使用 "NOT NULL" 属性

 

对写入密集型表, 尽量减少索引, 尤其是 "多字段索引" 和 "unique" 索引

 

MySQL数据库查询语句的优化

多多利用 "explain" 查询索引使用情况, 以便找出***的查询语句写法和索引设置方案

慎用 "select *", 查询时只选出必须字段

 

查询使用索引时, 所遍历的索引条数越少, 索引字段长度越小, 查询效率越高 (可使用 "explain" 查询索引使用情况)

 

避免使用 MySQL 函数对查询结果进行处理, 将这些处理交给客户端程序负责

 

使用 "limit" 时候, 尽量使 "limit" 出的部分位于整个结果集的前部, 这样的查询速度更快, 系统资源开销更低

 

在 "where" 子句中使用多个字段的 "and" 条件时, 各个字段出现的先后顺序要与多字段索引中的顺序相符

 

在 "where" 子句 中使用 "like" 时, 只有当通配符不出现在条件的最左端时才会使用索引

 

在 MySQL 4.1 以上版本中, 避免使用子查询, 尽量使用 "内/外连接" 实现此功能

 

减少函数的使用, 如果可能的话, 尽量用单纯的表达式来代替

 

避免在 "where" 子句中, 对不同字段进行 "or" 条件查询, 将其拆分成多个单一字段的查询语句效率更高

 

【编辑推荐】

  1. MySQL 群集的概念与ndb群集构架图
  2. JDBC 连接MySQL数据库实战演示
  3. MySQL 事件调度器示例演示
  4. JDBC 连接MySQL数据库实战演示
  5. MySQL被Oracle并购后的409个日日夜夜
责任编辑:佚名 来源: cnblogs
相关推荐

2011-07-06 10:49:50

MySQL优化

2011-07-06 14:12:20

MySQLPercona

2010-05-21 14:01:23

MySQL数据库

2011-03-09 08:53:02

MySQL优化集群

2020-05-20 18:40:11

MySQL回表与索引数据库

2011-03-08 08:49:55

MySQL优化单机

2018-06-26 15:58:06

数据库MySQL索引优化

2010-05-21 12:15:52

2010-05-26 13:42:08

MySQL数据库索引

2010-05-21 10:01:11

MySQL数据库

2010-05-21 13:48:36

MySQL数据库

2010-06-02 13:58:30

MySQL数据库性能

2010-05-31 16:17:56

MySQL数据库性能

2010-05-24 13:14:19

创建MySQL

2010-05-13 10:47:44

MySQL数据库查询

2010-06-10 10:15:50

MySQL数据库查询

2011-04-12 10:21:24

Oracle数据库索引树

2010-04-23 11:32:22

Oracle数据库

2016-12-12 13:07:57

数据库优化SQL

2010-02-01 10:10:41

Oracle数据库优化
点赞
收藏

51CTO技术栈公众号