数据库|mysql教程
mysql,性能,分表优化
数据库-mysql教程
破解源码分享,ubuntu 如何用vim,tomcat好不好用,爬虫必备工具,php实现手机短信验证,seo 扒网站lzw
在mysql使用时到超大千万级数据量时我们大多会考虑到分表查询,分库查询,下面我们来介绍一下关于分表查询时的优化。
red5 vod源码,ubuntu下虚拟参数,网页爬虫神器app,sorket php,seo优化珠峰lzw
asp源码怎么搭建网站视频,ubuntu下的字典,tomcat运行了两次,投标爬虫软件,php开发实例教程交流,SEO韩国衣服lzw
我们的项目中有好多不等于的情况。今天写这篇文章简单的分析一下怎么个优化法。
这里的分表逻辑是根据t_group表的user_name组的个数来分的。
因为这种情况单独user_name字段上的索引就属于烂索引。起不了啥名明显的效果。
1、试验PROCEDURE.
2、试验表。
我们用一个有一千万条记录的表来做测试。
PS:
idx_combination1 这个索引是必须的,因为要对user_name来GROUP BY。此时属于松散索引扫描!当然完了后你可以干掉她。
idx_user_name 这个索引是为了加快单独执行constant这种类型的查询。
我们要根据用户名来分表。
所以结果表应该是这样的。
3、对比结果。
我们来看看聚集函数。
对于原表的操作。
其他聚集函数的结果就不是FULL INDEX SCAN了。耗时2.15秒。
对于小表的操作。
最大最小值完全是FULL TABLE SCAN,耗时1.50秒,不划算。以此看来。
取得这两个结果也是花了快2秒,快了一点。
我们来看看这个小表的结构。
明显的user_name属性是多余的。那么就干掉它。
现在来重新对小表运行查询
小总结一下:分出的小表的属性尽量越少越好。大胆的去干吧。