基于内存的Redis应该是目前各种web开发业务中最为常用的key-value数据库了,我们经常在业务中用其存储用户登陆态(Session存储),加速一些热数据的查询(相比较mysql而言,速度有数量级的提升),做简单的消息队列(LPUSH和BRPOP)、订阅发布(PUB/SUB)系统等等。规模比较
MySQL对于很多Linux从业者而言,是一个非常棘手的问题,多数情况都是因为对数据库出现问题的情况和处理思路不清晰。在进行MySQL的优化之前必须要了解的就是MySQL的查询过程,很多的查询优化工作实际上就是遵循一些原则让MySQL的优化器能够按照预想的合理方式运行而已。今天给大家体验MySQL的
先从 MySQL 的基本存储结构说起MySQL的基本存储结构是页(记录都存在页里边):各个数据页可以组成一个双向链表每个数据页中的记录又可以组成一个单向链表每个数据页都会为存储在它里边儿的记录生成一个页目录,在通过主键查找某条记录的时候可以在页目录中使用二分法快速定位到对应的槽,然后再遍历该槽对应分
MySQL主从复制,读写分离是互联网常见的数据库架构,该架构最令人诟病的地方就是,在数据量较大并发量较大的场景下,主从延时会比较严重。 为什么主从延时这么大? 答:MySQL使用单线程重放RelayLog。 应该怎么优化,缩短重放时间?答:多线程并行重放RelayLog可以缩短时间。 多线程并行重放
不少人在开发的时候,应该很少会注意到这些锁的问题,也很少会给程序加锁(除了库存这些对数量准确性要求极高的情况下)一般也就听过常说的乐观锁和悲观锁,了解过基本的含义之后就没了~~~定心丸:即使我们不会这些锁知识,我们的程序在一般情况下还是可以跑得好好的。因为这些锁数据库隐式帮我们加了:对于UPDATE
Apache Kafka 是一款流行的分布式数据流平台,它已经广泛地被诸如 New Relic(数据智能平台)、Uber、Square(移动支付公司)等大型公司用来构建可扩展的、高吞吐量的、且高可靠的实时数据流系统。例如,在 New Relic 的生产环境中,Kafka 群集每秒能够处理超过 150
Redis是单线程的。因此在使用一些时间复杂度为O(N)的命令时要非常谨慎。可能一不小心就会阻塞进程,导致Redis出现卡顿。有时,我们需要针对符合条件的一部分命令进行操作,比如删除以test_开头的key。那么怎么获取到这些key呢?在Redis2.8版本之前,我们可以使用keys命令按照正则匹配
千万级数据分页优化mongo采用的是单机部署,数据量1千万,需求是实现分页面,按照capTime倒叙排列,每页数据20条skip+limit 这是最传统的数据查询方式,db.getCollection('CapMotor').find().skip(9000000).sort({'capTime':
CREATE TABLE `dbcache` (`id` int(10) unsigned NOT NULL AUTO_INCREMENT,`skey` varchar(32) NOT NULL,`value1` varchar(100) NOT NULL,PRIMARY KEY (`id`)) E
1.对查询进行优化,要尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num is null 最好不要给
先分享一下拉链表的用途、什么是拉链表。通过一些小的使用场景来对拉链表做近一步的阐释,以及拉链表和常用的切片表的区别。举一个具体的应用场景,来设计并实现一份拉链表,最后并通过一些例子说明如何使用我们设计的这张表(因为现在Hive的大规模使用,我们会以Hive场景下的设计为例)。分析一下拉链表的优缺点,
站在程序员的角度以MySQL为例探索数据库的奥秘!数据库基本原理我对DB的理解第一:数据库的组成:存储 + 实例不必多说,数据当然需要存储;存储了还不够,显然需要提供程序对存储的操作进行封装,对外提供增删改查的API,即实例。一个存储,可以对应多个实例,这将提高这个存储的负载能力以及高可用;多个存储
和大家介绍常见的Redis架构、以往我在陌陌、去哪儿网做Redis时的一些经验,主要包括DBA日常维护MySQL或Redis时需要做的工作、如何根据日常工作和业务的需求来制定Redis架构,最后是分享一些好用的辅助工具,与大家共勉。一、DBA的日常工作我们DBA在日常工作中主要会遇到这些问题:如何更
我将讨论七种你可以从两个关联表中获取数据的方法, 排除了交叉JOIN和自JOIN的情况。 七个JOINs的例子如下:INNER JOIN (内连接)LEFT JOIN (左连接)RIGHT JOIN (右连接)OUTER JOIN (外连接)LEFT JOIN EXCLUDING INNER JOI
Top 1:Too many connections(连接数过多,导致连接不上数据库,业务无法正常进行)问题还原mysql> show variables like '%max_connection%';| Variable_name | Value |max_connections |
优化嵌套查询嵌套查询(子查询)可以使用SELECT语句来创建一个单列的查询结果,然后把这个结果作为过滤条件用在另一个查询中。嵌套查询写起来简单,也容易理解。但是,有时候可以被更有效率的连接(JOIN)替代。现在假如要找出从来没有在网站中消费的客户,也就是查询在客户customer表中但是不在支付pa
正常项目开发过程中,如果MySQL版本从5.6升级到5.7版本。作为DBA在考虑数据库版本升级带来的影响时,一般会有几个注意点:sql_mode 默认值的改变optimizer_switch 值的改变备库升级影响主备复制本文主要内容是MySQL升级到5.7版本之后,由于默认的 sql_mode 值带
下面开始我们今天的主要内容,今天主要是通过什么、为什么、怎么做,这条思路跟大家呈现MySQL的高可用。首先介绍一下什么是高可用?在我看来就是业务在高质量的情况下,对用户提供服务的可运行的总时长。其实我们从事MySQL相关的工作,大家对9这个数字比较敏感,大家选择云厂商云产品的时候,首先会看它的数据库
学习MySQL之前,首先需要了解数据库和SQL。 如果您已经知道数据库和SQL,那么可以直接跳转到下一章节的学习。1. 数据库简介当您想收听最喜欢的歌曲时,可以从智能手机上打开播放列表。在这种情况下,播放列表是数据库就是从数据库中读取出来的。当您拍摄照片并将其上传到微博,朋友圈等,这样的社交网络中的
如何使用MySQL Installer在Windows平台(Win10)上安装MySQL。在学习并按照本教程所示的步骤操作之后,您将有一个MySQL数据库服务器在您的系统中,并以此MySQL数据库服务器为基础,运行相关工具来学习和实践MySQL。下载MySQL安装程序这里想要说的是,安装MySQL的