0

如何写一手好SQL很有必要

前言博主负责的项目主要采用阿里云数据库MySQL,最近频繁出现慢SQL告警,执行时间最长的竟然高达5分钟。导出日志后分析,主要原因竟然是没有命中索引和没有分页处理 。其实这是非常低级的错误,我不禁后背一凉,团队成员的技术水平亟待提高啊。改造这些SQL的过程中,总结了一些经验分享给大家,如果有错误欢迎批评指正。MySQL性能最大数据量抛开数据量和并发数,谈性能都是耍流氓 。MySQL没有限制单表最大记录数,它取决于操作系统对文件大小的限制。文件系统单文件大小限制FAT32最大4G NTFS最大64GB NTFS5.0最大2TB EXT2块大小为1024字节,文件最大容量16GB;块大小为4096...

阅读全文>>

0

腾讯百亿级请求高可用Redis(codis)分布式集群实践

一、Redis有哪些常用的应用场景1)string | 计数器,用户信息(id)映射,唯一性(例如用户资格判断),bitmap2)hash | 常见场景:存储对象的属性信息(用户资料)3)list | 常见场景:评论存储,消息队列4)set | 常见场景:资格判断(例如用户奖励领取判断),数据去重等5)sorted set | 常见场景:排行榜,延时队列6)其他 | 分布式锁设计,推荐2篇文章:基于Redis的分布式锁到底安全吗(上)http://zhangtielei.com/posts/blog-redlock-reasoning.html基于Redis的分布式锁到底安全吗(下)http:...

阅读全文>>

0

除了会排序,你对ORDER BY的用法可能一无所知

导读为什么只有ORDER BY后面可以使用列别名为什么不推荐使用ORDER BY后接数字来排序为什么视图和子查询里面不能使用ORDER BY ……​小伙伴们在进行SQL排序时,都能很自然的使用到ORDER BY。不管是默认ASC的升序,还是DESC降序,几乎都是信手拈来。今天给大家分享一些你可能不知道的ORDER BY用法。一、ORDER BY返回的是游标而不是集合SQL的理论其实是集合论,常见的类似求数据的交集、并集、差集都可以使用集合的思维来求解。集合中的行之间没有预先定义的顺序,它只是成员的一种逻辑组合,成员之间的顺序无关紧要。如下图,每一个括号里的内容就是一条记录,在没排序前,他们都是...

阅读全文>>

0

10亿数据量只需要100MB内存,redis的位存储为什么这么牛?

本文主要和大家分享一下redis的高级特性:bit位操作。力求让大家彻底学会使用redis的bit位操作并掌握其底层实现原理!主要包含以下内容:redis位操作命令示例底层数据结构分析为什么他的算法时间复杂度是O(1)?10亿数据量需要多大的存储空间?redis位操作适合哪些应用场景?本文redis试验代码基于如下环境:操作系统:Mac OS 64位版本:Redis 5.0.7 64 bit运行模式:standalone moderedis位操作reids位操作也叫位数组操作、bitmap,它提供了SETBIT、GETBIT、BITCOUNT、BITTOP四个命令用于操作二进制位数组。先来看一...

阅读全文>>

0

微软SQL Server 2019 全新发布,更新内容亮点都在这里了

在Microsoft Ignite 2019 大会上,微软正式发布了新一代数据库产品SQL Server 2019。使用统一的数据平台实现业务转型SQL Server 2019 附带 Apache Spark 和 Hadoop Distributed File System(HDFS),可实现所有数据的智能化。SQL Server 2019 的亮点SQL Server 2019 为所有数据工作负载带来了创新的安全性和合规性功能、业界领先的性能、任务关键型可用性和高级分析,现在还支持内置的大数据。任何数据的智能化SQL Server 是数据集成的中心。通过 SQL server 和 Spark ...

阅读全文>>

0

围观,阿里P7大佬超详细揭秘 Redis 持久化

Redis 是一个开源( BSD 许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。它支持的数据类型很丰富,如字符串、链表、集 合、以及散列等,并且还支持多种排序功能。什么叫持久化?用一句话可以将持久化概括为:将数据(如内存中的对象)保存到可永久保存的存储设备中。持久化的主要应用是将内存中的对象存储在数据库中,或者存储在磁盘文件中、 XML 数据文件中等等。从应用层与系统层理解持久化同时,也可以从应用层和系统层这两个层面来理解持久化:应用层:如果关闭( Close )你的应用然后重新启动则先前的数据依然存在。系统层:如果关闭( Shutdown )你的系统(电脑)然后重新...

阅读全文>>

0

MySQL用得好好的,为什么要转ES?

来源:京东技术(jingdongjishu)京东到家订单中心系统业务中,无论是外部商家的订单生产,或是内部上下游系统的依赖,订单查询的调用量都非常大,造成了订单数据读多写少的情况。我们把订单数据存储在MySQL中,但显然只通过DB来支撑大量的查询是不可取的。同时对于一些复杂的查询,MySQL支持得不够友好,所以订单中心系统使用了Elasticsearch来承载订单查询的主要压力。Elasticsearch作为一款功能强大的分布式搜索引擎,支持近实时的存储、搜索数据,在京东到家订单系统中发挥着巨大作用,目前订单中心ES集群存储数据量达到10亿个文档,日均查询量达到5亿。随着京东到家近几年业务的快...

阅读全文>>

0

Redis为什么默认16个数据库?

导读:在实际项目中Redis常被应用于做缓存,分布式锁、消息队列等。但是在搭建配置好Redis服务器后很多朋友应该会发现和有这样的疑问,为什么Redis默认建立了16个数据库,如下图所示。 一、16个数据库的由来 Redis是一个字典结构的存储服务器,一个Redis实例提供了多个用来存储数据的字典,客户端可以指定将数据存储在哪个字典中。这与在一个关系数据库实例中可以创建多个数据库类似(如下图所示),所以可以将其中的每个字典都理解成一个独立的数据库。 以MySQL实例为例 Redis默认支持16个数据库,可以通过调整Re...

阅读全文>>

0

别逗了,你真以为分库分表就能无限扩容吗?

像我这样的菜鸟,总会有各种疑问,刚开始是对 JDK API 的疑问,对 NIO 的疑问,对 JVM 的疑问... 图片来自 Pexels 当工作几年后,对服务的可用性,可扩展性也有了新的疑问,什么疑问呢?其实是老生常谈的话题:服务的扩容问题。 正常情况下的服务演化之路 让我们从最初开始。 单体应用 每个创业公司基本都是从类似 SSM 和 SSH 这种架构起来的,没什么好讲的,基本每个程序员都经历过。 RPC 应用 当业务越来越大,我们需要对服务进行水平扩容,...

阅读全文>>

0

2019,遇见最好的 MySQL 数据库

2019年,关于 MySQL 的新特性、新版本消息不绝于耳: 2019,10月,MySQL 8.0.18 发布,支持 HASH JOIN;2019,4月,MySQL 8.0.11 发布,实现比 MySQL 5.7 快 2 倍的速度; MySQL 一直是互联网数据内核的主宰,但是在经历从互联网到企业级的转变中,却是困难重重。然而在 2019年,越来越多的企业级客户开始在业务核心中使用 MySQL 数据库,这是一个标志性的转变,代表 MySQL 打开了更广泛的企业市场,而MySQL的技术变革也正在以更快的步伐去满足更广泛的用户需求。 毫无疑问,MySQL 是当今...

阅读全文>>