首页新闻找找看学习计划

mysql 数据库优化的问题

0
[待解决问题]

mysql  表在设计时  主键不是 int 自增,,,,是一个string 类型,,,现在 分页查询时,,带条件 很慢  怎么解决 [count(*)表  where]   

孩丿的主页 孩丿 | 初学一级 | 园豆:186
提问于:2018-01-05 09:29
< >
分享
所有回答(4)
0

贴下表结构,索引信息,分页查询语句

Daniel Cai | 园豆:10374 (专家六级) | 2018-01-05 09:34

表的 列

支持(0) 反对(0) 孩丿 | 园豆:186 (初学一级) | 2018-01-05 10:10
0

很多问题需要考虑

1、数据量

2、查询语句

3、数据服务器性能

4、到底有多慢?几秒、几十秒、几分钟、几个小时?

5、你怎么观察到慢的?有时候慢是其他原因造成的,比如UI渲染、网络传输。

 

这些你都不说,谁知道呢?

爱编程的大叔 | 园豆:29788 (高人七级) | 2018-01-05 09:45

以前 几万 数据量 没有 体现出现,,,现在 30w的数据,,,有条件的 count(*)一次 大约 要三秒

 

select count(*)
as total from insurancepolicy as d1 JOIN insuranceproduct as d2 on d1.ProductCode=d2.ProductCode where 1=1
and d1.PayStatus='已支付' and d1.PolStatusValue='已生效'

 

 

就这句话  加where  要三秒         不加0.2秒

支持(0) 反对(0) 孩丿 | 园豆:186 (初学一级) | 2018-01-05 09:48

@孩丿: PayStatus和PolstatusValue 是否有索引?

支持(0) 反对(0) 爱编程的大叔 | 园豆:29788 (高人七级) | 2018-01-05 09:51

在Navicat直接 执行 这句话 就很慢,,,不存在 渲染和网络问题,,就

支持(0) 反对(0) 孩丿 | 园豆:186 (初学一级) | 2018-01-05 09:52

@爱编程的大叔: 没有加索引   加了 要4秒 

支持(0) 反对(0) 孩丿 | 园豆:186 (初学一级) | 2018-01-05 09:55
0

ProductCode加索引试试

西漠以西 | 园豆:1670 (小虾三级) | 2018-01-05 10:27

这个 有索引

支持(0) 反对(0) 孩丿 | 园豆:186 (初学一级) | 2018-01-05 10:28
0

insurancepolicy 表,  ProductCode  PayStatus  PolstatusValue  这三个字段建立一个索引

然后explain一下  看看是否用到索引

、熙和 | 园豆:1486 (小虾三级) | 2018-01-06 10:11
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册