最近,又遇到了慢 SQL,简单的看了下,又是因为 MySQL 本身优化器还有查询计划估计不准的问题。SQL 如下:
无论是做PHP开发还是做JAVA开发甚至前端开发,只要是开发,面试的时候都必考数据库。为什么前端也要考数据库?因为数据库课程是计算机的基础课程,同样的基础课程还有操作系统,数据结构。只要写代码就永远跳不出这三门基础课。
在估算之前我们必须清楚这台数据库服务器的配置是什么情况,正常情况下我们需要摸清楚以下几点因素:
题目比较特殊,最近过完年工作量和问题爆发的方式增长,DBA的工作量增长只能说明如下的几个问题
例1: 没有携带on的条件字句,此条slq查询的结构集等价于,a表包含的条数*b表包含的乘积:
上面,我们使用 -B test 表明是对 test 这个 database 操作,然后用 -T t1,t2 表明只导出 t1,t2 两张表。
ES 生产集群的部署架构是什么?每个索引的数据量大概有多少?每个索引大概有多少个分片?
线上的MySQL实例在使用时间长了之后,会保存很多的业务数据,通常情况下,磁盘使用量也会随着业务的接入时间上升。
零氪科技作为全球领先的人工智能与医疗大数据平台,拥有国内最大规模、体量的医疗大数据资源库和最具优势的技术支撑服务体系。多年来,零氪科技凭借在医疗大数据整合、处理和分析上的核心技术优势,依托先进的人工智能技术,致力于为社会及行业、政府部门、各级医疗机构、国内外医疗器械厂商、药企等提供高质量医疗大数据整体解决方案,以及人工智能辅助决策系统(辅助管理决策、助力临床科研、AI 智能诊疗)、患者全流程管理、医院舆情监控及品牌建设、药械研发、保险控费等一体化服务。
我们知道,数据库是存放数据的仓库。日常我们使用数据库也是为了存储数据,和数据库打交道总免不了要进行数据导入工作。工作中也可能遇到各种不同的数据导入需求,本篇文章主要分享下数据导入相关的小技巧,希望你能学到几招。
前些天处理了一个需求,当时的数据库环境是Oracle,我算是想尽了Oracle相关的方案,而且在问题的处理过程中,还在不断的琢磨,如果失败了还有什么其他的方案。 所以尽管Oracle这么一个成熟的商业数据库,做起来还是有些难度,需要一些额外的技巧,比如规避bug,间接实现需求等。 但是换个角度,2亿多数据的表,其实MySQL也不是新鲜事儿了。如果MySQL碰到了这种情况,该怎么处理呢。 梳理业务需求 假设业务需求还是不变,如下: 业务同学反馈,数据库中有一个表数据量很大,因
爱奇艺,中国高品质视频娱乐服务提供者,2010 年 4 月 22 日正式上线,推崇品质、青春、时尚的品牌内涵如今已深入人心,网罗了全球广大的年轻用户群体,积极推动产品、技术、内容、营销等全方位创新。企业愿景为做一家以科技创新为驱动的伟大娱乐公司。我们在前沿技术领域也保持一定的关注度。
平日的工作中,我们经常会跟业务同学讨论新的需求,每次需求讨论的时候,你是否有一套属于自己的方法论?也就是你需要业务提供什么信息,你需要告知业务什么信息。关于这一点,我进行了总结,希望对大家有所帮助。
我们做政企客户的解决方案支撑工作,一直在跟客户提到“大数据”,通过大数据就能将数据转化成推动精准营销、精准管理的利器。但实际,我们对大数据的理解有多少,今天我们用几张图帮助建立对大数据的技术理解。
原来的主库读写压力都很大,最后做了读写分离,读节点的压力开始激增,而且随着业务的扩展,统计查询的需求越来越多,比如原来是有10个查询,现在可能变成了30个,这样一来统计压力变大,导致系统响应降低,从而导致从库的延迟也开始变大。最大的时候延迟有3个小时,按照这种情况,统计的意义其实已经不大了。
今天和大家聊聊分库分表技术,大家面试的时候肯定都有这样的经历,面试官动不动就问分库分表、高并发、虚拟机、分布式事务等等这些高大上的技术。所以我们还是有必要要了解一下的。
有时间我们在使用in或者or进行查询时,为了加快速度,可能会经常这样来使用sql之间的拼接,然后直接导入到一个in中,这种查询实际上性能上还是可以的,
当传统数据存储与处理架构,在数据达到海量以后,产生了存储与性能瓶颈。这个时候大数据出现了,它帮忙解决了数据在海量规模情况下的的存储与计算问题。这是一个技术发展的必要途径,旧的技术无法适应新出现的场景,新技术就要诞生去进行解决。
Elasticsearch性能优化的最终目的:用户体验爽。 关于爽的定义——著名产品人梁宁曾经说过“人在满足时候的状态叫做愉悦,人不被满足就会难受,就会开始寻求。如果这个人在寻求中,能立刻得到即时满足,这种感觉就是爽!”。
本文档将详细介绍如何对 TiDB 进行全量备份与恢复。增量备份与恢复可使用 TiDB Binlog。
起因:查看线上数据库中Table Information时发现有一个日志表数据大小和索引大小有915M,但实际行数只有92行。该表需要频繁插入并且会定时去删掉旧的记录。表类型为Myisam,已建立一个索引,所以应该是产生了大量碎片,使用 Optimize table 表名 优化后大小变为2.19M,少了很多, 同时可以看出该表上的索引建的多余,因为插入操作比查询操作要多很多,而且查询不多,查询的数据量也一般比较小。
最近有一张2000W条记录的数据表需要优化和迁移。2000W数据对于MySQL来说很尴尬,因为合理的创建索引速度还是挺快的,再怎么优化速度也得不到多大提升。
Redis 从 3.0 版本开始,提供了官方的集群支持,也就是 Redis Cluser。Redis Cluster 相比于单个节点的 Redis,能保存更多的数据,支持更多的并发,并且可以做到高可用,在单个节点故障的情况下,继续提供服务。
到数据归档,很多人的第一个概念就是,不就是无用的数据,换个地方放吗,直接拷贝,删除不就得了,有那么麻烦。
根据上图可以看到QPS:10.73k,实际上真实的并发大量数据到达的时候,我这里最高的QPS是将近15k.而目前单个数据库分片(实例)4CPU8G内存的配置下,最高的性能是7k的QPS。
本人混迹qq群2年多了,经常听到有人说“数据表太大了,需要分表”,“xxxx了,要分表”的言论,那么,到底为什么要分表?
举例:一个用户表有很多的属性,关联了很多数据,如果放到同一个表里面的话查询是方便了,但是效率不行。
昨天对Data Guard的归档压缩进行了一个初步的测试,我今天又做了一些补充。 1.昨天测试的是默认50M的redo,如果redo增大,在IO bound的场景中,是否有很大的变化 2.对于归档压缩来说,数据量如果增大,是否会有较大的抖动,昨天测试的是20G的数据量,初始化了50% 3.对于整个数据初始化的过程中,主备的延迟到底有多大,是否有延迟回落的现象。 我们一个一个来做解答。 首先是redo的大小调整,我们需要设置redo大小为200M,备库的standby logfile也
本文来源:https://www.percona.com/blog/2020/08/13/how-many-innodb_buffer_pool_instances-do-you-need-in-mysql-8/
当我们因为误操作修改了数据库中的数据, 同时有没有备份可以恢复时, 我们就可以通过分析二进制日志, 对日志中记录的数据修改操作做反向处理的方式来达到恢复数据的目的
最近接到一个需求,通过选择的时间段导出对应的用户访问日志到excel中, 由于用户量较大,经常会有导出50万加数据的情况。而常用的PHPexcel包需要把所有数据拿到后才能生成excel, 在面对生成超大数据量的excel文件时这显然是会造成内存溢出的,所以考虑使用让PHP边写入输出流边让浏览器下载的形式来完成需求。 我们通过如下的方式写入PHP输出流 $fp = fopen('php://output', 'a'); fputs($fp, 'strings'); .... .... fclose($fp)
每种数据库都有自己的管理内存的方法,MYSQL 管理内存(仅仅讨论 INNODB 数据库引擎)的方法大部分都关注在 innodb_buffer_pool_size 这个设置。MYSQL 本身内存管理有这么简单吗?
NoSQL在2010年风生水起,大大小小的Web站点在追求高性能高可靠性方面,不由自主都选择了NoSQL技术作为优先考虑的方面。今年伊始,InfoQ中文站有幸邀请到凤凰网的孙立先生,为大家分享他之于NoSQL方面的经验和体会。
1.程序自动完成,数据源方便管理。2.不需要维护,因为没用中间件。3.理论支持任何数据库 (sql标准)。
面试官: 小伙子,看到你的简历上面写了项目中有对MySQL进行分库分表,为什么要进行分库分表?
作者 | Jordan Tigani 译者 | 红泥 策划 | 李冬梅 随着云计算时代的发展,大数据实际已经不复存在。在真实业务中,我们对大数据更多的是存储而非真实使用,大量数据现在已经变成了一种负债,我们在选择保存或者删除数据时,需要充分考虑可获得价值及各种成本因素。 十多年来,人们一直很难从数据中获得有价值的参考信息,而这被归咎于数据规模。“对于你的小系统而言,你的数据量太庞大了。”而解决方案往往是购买一些可以处理大规模数据的新机器或系统。但是,当购买了新的设备并完成迁移后,人们发现仍然难以处
可能是经常处理业务,最近总是听到开发的同学说SQL的查询慢。然后问我为什么,让我在数据库层面找原因。这样的需求接的多了,对于这类需求,我已经有了一套比较官方的回答思路,我来说,大家看,看看还有什么没有考虑到的地方,欢迎指正。
在做业务架构的过程中,你是否遇到过类似的痛点? (1)数据量太大,容量复杂性上移到业务层; (2)并发量太大,性能复杂性上移到业务层; (3)前台与后台存储异构,满足不同查询需求; (4)线上与线下存储异构,满足大数据需求; (5)存储系统迁移成本高,不敢轻易做重构; (6)... 职业生涯十五年,基本都在使用MySQL做线上业务的存储。最近这几年,遇到的问题慢慢多起来,严重影响了研发效率。TiDB近年甚火,于是最近做了一些调研,与大家分享。 如一贯风格,更多的聊:TiDB究竟解决什么问题,以及为什么这
1、查看索引是否设置妥当,即所用的查询条件是否有添加索引,当然索引不是越多越好,只需给常用的查询条件加上即可,一般采用B+树的索引方式(具体原因可自行百度,不再赘述)
如果面试的时候碰到这样一个面试题:ES 在数据量很大的情况下(数十亿级别)如何提高查询效率?
这个问题说白了,就是看你有没有实际用过 ES,因为啥?其实 ES 性能并没有你想象中那么好的。
有一个这样的需求,通过选择的时间段导出对应的用户访问日志到excel中, 由于用户量较大,经常会有导出50万加数据的情况。而常用的PHPexcel包需要把所有数据拿到后才能生成excel, 在面对生成超大数据量的excel文件时这显然是会造成内存溢出的,所以考虑使用让PHP边写入输出流边让浏览器下载的形式来完成需求。 通过以下的方式写入PHP输出流 。
本文主要对设计方案进行一些思考及测试,思考结果的正确性无法保证,测试结果保证正确.
我这里按公司实际场景,规定了,每次操作/获取数据量应该少于5000条,结果集应该小于2M
那你再想一下,你当下的业务用 MySQL 做主存储还能支撑多久,如果业务量暴增,你能怎么做,愿意花多大价钱进行扩容?
数据库很容易成为系统性能的一个瓶颈,单机存储容量、IO、CPU处理能力都有限,当单表的数据量达到1000W或100G以后,库表的增删改查操作面临着性能大幅下降的问题。存储容量现在一般容易解决,主要是IO瓶颈和CPU瓶颈,最终都会导致数据库的活跃连接数增加,进而逼近甚至达到数据库可承载活跃连接数的阈值。从业务方来看,就是数据库可用连接少,甚至无连接可用。
Presto因其优秀的查询速度被我们所熟知,它本身基于MPP架构,可以快速的对Hive数据进行查询,同时支持扩展Connector,目前对Mysql、MongoDB、Cassandra、Hive等等一系列的数据库都提供了Connector进行支持。是我们常用的SQL on Hadoop的解决方案。那么我们今天就来看一下,当我们选择Presto作为我们的查询引擎之后,我们需要考虑的问题。
数据流程简单,数据处理流程简单,数据包括日志、DB log等,经Sqoop批量或Kafka实时接入大数据平台HDFS里,在大数据平台进行ETL后,通过大数据调度系统Ooize,每天定时写入到关系型数据库MySQL,再以MySQL中数据为基础产出各种报表。
一、前言 这个问题是博主去年面试的时候被大佬问过的问题,当时也不大清楚里面的原理,硬着头皮回答的,当然,最终面试也没过,哈哈。最近刚好研究了这块的一些东西,就有种恍然大悟的感觉,这里分享给大家,欢迎拍砖~
谈到Hermes的索引技术,相信很多同学都会想到Solr、ElasticSearch。Solr、ElasticSearch真可谓是大名鼎鼎,是两个顶级项目,最近有些同学经常问我,“开源世界有Solr、ElasticSearch为什么还要使用Hermes” 在回答这个问题之前,大家可以思考一个问题,既然已经有了Oracle、MySQL等数据库为什么大家还要使用ES下的Hive、Spark? Oracle和MySQL也有集群版,也可以分布式,那ES与Hive的出现是不是多余的? Hermes的出现,并
领取专属 10元无门槛券
手把手带您无忧上云