数据库中的数据结构以及查询过程
数据结构通常会影响两个维度的优化:一是响应时间;二是资源消耗。
● 选择时数据类型的影响
选择数据类型通常应该遵守以下规则:
1.越小越好
所谓的越小越好是指数据类型所占
一、数据结构 数据结构通常会影响两个维度的优化:一是响应时间;二是资源消耗。 ● 选择时数据类型的影响 选择数据类型通常应该遵守以下规则: 1.越小越好 所谓的越小越好是指数据类型所占的字节空间,即所占的内存情况。 2.数据类型越简单越好 通常来说越简单的数据类型,在处理时所消耗的CPU时间频率是最少的,数据类型越复杂数据库查询操作,所消耗的CPU时间频率就会越长。例如时间、日期、IP地址等,之所以会这样是因为复杂的数据类型在比较时不是简单的ACSII比较,必须借用专门的函数来比较。 3.避免使用NULL 在定义表时,避免允许使用NULL,如果非要使用也是使用NOT NULL,因为NULL表示不是一个值,这样就不好比较。 ● 常见数据类型说明 1.整型 整数又分为:TINYINT、smallint、mediumint、int、bignit,分别所点的字节数为8、16、24、32、64个字节空间 2.实型 实型分为:Float、double,分别占4个和8个字节 3.字符 字符类型又分两种:char和varchar char是固定的大小,例如char(10),占10个字节。 varchar可变长度,例如varchar(10),如果执行我们没有用到10个字符,那么用到多少个就内存就会分配多少个,但是最多不超过10个字符,最后会有额外的字节用来做标识的。 4.日期与时间 日期与时间所点字节数与日期和时间的格式无关,固定的占8个字节 二、 查询过程 所有我们输入的SQL语句最后都会变成一个可执行的计划,放在CPU中来理解就是一个任务,每个CPU(如果CPU是单核的话)那么只同时处理一个任务,即CPU只能同时处理一个线程。 查询在运行的有不同状态: 等待新的查询 线程正在执行查询或将查询的结果返回到客户端 表示表处于锁定状态 分析和统计相关的信息,并对查询进行优化 将结果集的数据拷贝临时表 对查询的结果进行排序 发送数据一般理解将数据返回到客户端,也可以是查询状态之间的数据传递。 查看当前查询状态的命令如下:
查询过程的步骤如下: 1.客户端向服务器发送请求 2.查询缓存 3.解析与优化查询 通常优化的内容的包括以下部分: --->对连接表进行重新排序 --->将外链接变成内链接进行查询 --->代数等价法则,即关系运算符的处理 --->优化聚合函数: count()、min()、max() --->计算和减少常量表达式 --->覆盖索引 --->子查询优化,将多个子查询转换为独立查询 --->尽早终结,是指执行的查询语句不要写的过长 --->优化in集合,优化in集合中的关系谓词 4.生成执行计划 5.查询引擎 (编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |