(一)一个问题引入:mysql数据库优化
来源:互联网 发布:能量矩阵 编辑:程序博客网 时间:2024/06/01 10:37
在测试的时候录入近千万级的数据,实时的显示历史记录查询出现问题。sql如下所示:
select * from table_test where date = '2016-01-15' AND type != 0 ORDER by lottery_date desc limit 100;
由于这条语句的查询速度较慢导致调用soa dubbo接口的时候超时,所以需要对这条sql进行查询优化。
查询对表table_test的索引:
可以看出where条件中,type和date只有date在索引中,且date的Cardinality属性只有18,Cardinality表示散列程度,当Cardinality数值过小时和扫描全表的效率相差不大,且当mysql超过百万级的数据量时性能会下降。
explain 这条sql语句如下图所示:
所以最终的解决方案是,当数据量过千万级别的时候,就要想法通过其他方式进行 优化,由于需求是需要显示最新的历史数据,所以可以不根据这个字段进行查询,这样在千万级的数据量访问时,就不会出问题。
实际中的数据有90w,查询使用秒数0.734也可以接受啦,为了保证万无一失,减少数据库访问压力,在此基础上加行了缓存,并且设置缓存的时间为5分钟,这样在进行压力测试的时候,对于千万条数据,调用接口的成功率可达到百分之九十九了。
总结:
1 、要在常用查询的字段上建立索引。
2、数据量大时,避免多个表的连接查询。
3、当设置某个字段做索引字段,所以种类越多越好。由此问题抛砖引出关于mysql的优化先关内容。
1 0
- (一)一个问题引入:mysql数据库优化
- mysql数据库优化(一)
- Mysql数据库优化(一)
- MySQL数据库优化(一)
- mysql 数据库优化 一
- MySQL数据库优化(一)
- 数据库mysql 优化一
- Mysql数据库优化系列(一)------Mysql服务器优化思路
- Mysql数据库优化系列(一)------Mysql服务器优化思路
- MySQL 数据库性能优化之(一)缓存参数优化
- MySql数据库优化笔记(一)
- MySQL数据库结构优化(一)
- mysql 优化系列(一) Mysql数据库引擎性能测试
- MySQL数据库优化(一)——MySQL引擎
- 数据库优化之MySQL优化(一)
- Mysql数据库优化---2.慢查询(一)
- 【Day22】mysql数据库的优化(一版)
- Mysql数据库调优和性能优化(一)
- Git 操作整理
- 能帮你管理Xcode插件的工具 Alcatraz
- java之StringUtils
- 操作系统死锁
- JavaWeb实现用户登录的拦截
- (一)一个问题引入:mysql数据库优化
- 逆向工具相关使用总结
- iOS-UItableview 分割线(自定义+原生)方法总结
- linux 回收站的路径
- ListView布局嵌套Viewpager+gridview创建无限轮播+分类
- UIView和CALayer的区别 说的比较清楚了
- HSU 2328 Corporate Identity
- 微信自动关闭内置浏览器页面,返回公众号窗口
- JAVA基础(18) Java 多线程 并发编程