mysql查询小表和大表的位置_mysql中大表与小表的查询性能测试

改造了一下AR的测试脚本(见附件),测试在大表下的AR全方位性能。

经过测试发现,有索引的情况下,ActiveRecord的CRDU都可以保证在0.1-1ms下完成。但在没有索引的情况下,遍历全表,就很意思了!

1. 遍历:一万条记录遍历在5-11ms, 在可用性范围内。但一百万条记录,在0.6-2s内,显示达不到可用性要求了。百万条记录查找一定要有索引。

2. 非平衡:对两张不同的表(记录数)相同,查找性能是截然不同的。exhibit表里有大字段,查找性能就比user表差很多。

3. 非线性:随着纪录数增加,遍历查找性能下降(非线性下降)。由其是含有大字段数据的表。exhibit在一万条记录下是11.060ms, 在一百万条记录不是1100ms, 而是1892ms.

测试数据:

10,000 records

|      AR |

------------------------------------------------------------------

create 10_000 records                               x1 |  29.919 |

Model.first                                      x1000 |   0.275 |

Model.all limit(100)                             x1000 |   7.454 |

Model.all limit(100) with relationship           x1000 |  13.036 |

Model.all limit(10,000)                            x10 |   7.415 |

Model.create                                     x1000 |   1.240 |

Resource#update                                  x1000 |   0.775 |

Resource#destroy                                 x1000 |   1.066 |

Model.find(id)                                   x1000 |   0.239 |

Model.find_by_sql                                x1000 |   0.105 |

Model.find_by_name in user                         x1000 |   5.936 |

Model.find_by_name in exhibit                    x1000 |  11.060 |

1,000,000 records

|      AR |

------------------------------------------------------------------

create 1_000_000 records                            x1 | 3112.17 |

Model.first                                      x1000 |   0.279 |

Model.all limit(100)                             x1000 |   7.504 |

Model.all limit(100) with relationship           x1000 |  13.000 |

Model.all limit(10,000)                            x10 |   7.436 |

Model.create                                     x1000 |   1.235 |

Resource#update                                  x1000 |   0.765 |

Resource#destroy                                   x10 |   0.009 |

Model.find(id)                                   x1000 |   0.240 |

Model.find_by_sql                                x1000 |   0.121 |

Model.find_by_name in user                           x10 |   6.359 |

Model.find_by_name in exhibit                      x10 |  18.952 |

测试脚本

分享到:

18e900b8666ce6f233d25ec02f95ee59.png

72dd548719f0ace4d5f9bca64e1d7715.png

2011-04-06 23:27

浏览 965

论坛回复 / 浏览 (0 / 1559)

评论

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值