15年软件开发经验 只做源码定制 互联网+定制化解决方案

15年软件开发经验,只做源码定制!

原创设计 定制开发

满足您的个性化需求

当前位置:首页 后端开发 Thinkphp5

Mysql查询性能优化

教腾豪| 发布于 2021-08-19 18:35:36| 140阅读| 0点赞| 0评论
举报

数据库,mysql库表结构优化和查询优化

Mysql查询性能优化要从有二个方面,库表结构优化和查询优化。

一、 库表结构优化

1.  选择优化的数据类型

应该尽量选择正确数据类型的最小数据类型,更小数据类型通常更快,因为它们占用更少的磁盘、内存和cpu缓存。

1) 整数类型

 Mysql中的整数类型包括tinyint、smallint、mediumint、int、bigint,分别使用8、16、24、32和64位空间存储

2) 实数类型

 实数就是带有小数点的数据类型,mysql中的实数类型包括:float、double和decimal。其中,float和double属于浮点类型,是常见的数据类型,存储空间分别占用4和8个字节。

3) 字符串类型

Mysql中字符串类型包括varchar和char,分别用于存储可变长字符和固定长度字符。

4) Blob和text类型

Blob与text是用来存储大数据的数据类型,分别采用二进制和字符方式存储,与oracle中blob与clob(clob也是二进制存储,不是字符方式)类似

5) 日期和时间类型

 Mysql中包含datetime和timestamp两种存储日期和时间的类型。Datetime可以存储大范围的值,从1001到9999年,精确到秒,与时区无关,使用8个字节存储空间,显示格式为“2018-02-27 10:44:22”。

二、 查询优化

1)  优化count()查询

Count()函数是用来统计记录行数或某列值的数量,只统计不为null的值,

 在没有任何where条件的count()函数,查询速率非常快,因为mysql此时无需计算实际的行数,而是利用存储引擎的特性直接获取这个值。

2)  优化关联查询

当使用关联查询时,确保on或using子句中的列上有索引。确保group by和order by表达式只涉及到一个表中的列,这样才能使用索引来优化这个过程。

3) 优化子查询

优化子查询最重要的建议是尽可能的使用关联查询。

4) 优化group by和distinct

 Mysql内部优化器会相互转化这两种查询,它们都可以使用索引来来优化,而且索引优化是最优效的方式。

5) 优化limit分页

Mysql中使用limit m,n函数分页,其中m代表位置偏移量,n代表获取的行数。在使用limit分页时,通常加上order by子句。

 Limit的分页效率问题,主要就是位置偏移量的问题,当位置偏移量很大时,mysql需要扫描大量的行并抛弃掉。


0

0条评论

别默默看啦~登录/注册一起参与讨论吧~

热门标签

教腾豪
微信扫一扫立即咨询
账号登录|扫码登录

立即注册 |忘记密码?

欢迎注册

已有账号马上登录

重置密码

扫码绑定微信
微信扫一扫

绑定手机号

分享到-微信

举报

  • 举报类型:

  • 举报描述:

您好,当前积分不足。

在线客服
拨打电话
17330196230 13230981129
顶部