-
高并发环境下如何让Redis和MySQL保持数据统一
所属栏目:[MySql教程] 日期:2019-09-28 热度:98
业务场景 在高并发的业务场景下,数据库大多数情况都是用户并发访问最薄弱的环节。所以,就需要使用redis做一个缓冲操作,让请求先访问到redis,而不是直接访问MySQL等数据库。 这个业务场景,主要是解决读数据从Redis缓存,一般都是按照下图的流程来进行[详细]
-
阿里面试MySQL灵魂拷问20题,Java程序员秋招必会的8个知识点
所属栏目:[MySql教程] 日期:2019-09-28 热度:91
对于程序员来说,面试内容一般分为两个部分:编程面试题部分 + 数据库面试题部分。 据不完全调查,作为数据库中的主流选择 MySQL 的薪资待遇正在逐年增加,而且似乎不仅仅是程序员在学,就连很多产品经理和运营人也开始学习 MySQL 去分析数据。 对于技术面[详细]
-
记一次生产数据库sql优化案例--23秒优化到0.9秒
所属栏目:[MySql教程] 日期:2019-09-28 热度:160
新项目业务人员反馈说最近订单发放模块经常很卡,导致总是有锁的情况发生,在用慢查询和开启锁监控观察后发现实际上只是单条查询慢造成的阻塞锁,这里考虑先对单条查询做一下优化。 一、优化前的表结构、数据量、SQL、执行计划、执行时间 1. 表结构 A表有9[详细]
-
频繁插入(insert)的业务,用什么存储引擎更合适? | 数据库系列
所属栏目:[MySql教程] 日期:2019-09-28 热度:98
继续回答星球水友提问: 沈老师,MyISAM只支持表锁,但网上文章却说,在并发插入量比较大的时候,比较适合使用MyISAM,这矛盾吗? 这个问题,涉及MySQL表锁的一些细节,借着这个问题,系统性说下表锁的所以然。 画外音:网上不少文章只说结论,不说为什么,[详细]
-
删除一张大表时为什么undo占用空间接近原表两倍?
所属栏目:[MySql教程] 日期:2019-09-25 热度:171
概述 Oracle中,undo是保存记录的前镜像的,我理解如果delete from t;那产生的undo应该和t表的大小差不多,但测试结果却差的很远,undo产生的量基本上是t表大小的两倍,不知道为什么,难道我理解错了?下面看下这个奇怪的现象。 1. delete了8个小时 2. 原[详细]
-
几千万记录,数据库表结构如何平滑变更?
所属栏目:[MySql教程] 日期:2019-09-25 热度:168
继续回答知识星球水友提问。 问题域:数据量大、并发量高场景,如何在流量低峰期,平滑实施表结构变更? 画外音,一般来说,是指增加表的属性,因为: 如果是减column,升级程序不使用即可; 如果是修改column,程序兼容性容易出问题; 首先,一起看下有哪些[详细]
-
分享一份MySQL思维导图--MySQL数据库脉络分析
所属栏目:[MySql教程] 日期:2019-09-25 热度:158
抽空整理了mysql数据库学习脉络,比较适合开发入门学习,偏基础,大家凑合看下吧,主要是梳理一下思路。 mysql脉络 1. 数据类型 2. 数据库基本操作 3. 数据表基本操作 4. 数据表其他常用操作 5. 索引 6. 自定义函数 7. 存储过程 8. 视图 9. 触发器 10. 游[详细]
-
MySQL数据库表大小写不敏感处理,看完之后,大部分程序员收藏了
所属栏目:[MySql教程] 日期:2019-09-25 热度:66
MySQL大小写敏感的控制 mysql是通过lower_case_table_names参数来控制大小写敏感的 1:参数含义 lower_case_table_names: 此参数不可以动态修改,必须重启数据库 lower_case_table_names = 1 表名存储在磁盘是小写的,但是比较的时候是不区分大小写 lower[详细]
-
记一次生产环境SQL Server服务器卡顿问题解决--内存分配不当
所属栏目:[MySql教程] 日期:2019-09-25 热度:126
概述 最近有台数据库做了迁移,然后运维人员过了一段时间发现这台服务器非常卡,连远程登录都要很久,下面记录下其中的解决过程。 1、查看资源情况 可以发现内存爆满了,而排名第一的正是sqlserver的进程 2、查看sqlserver内存分配 SQL Server对服务器内存[详细]
-
MySQL最新版8.0与5.7之性能对比
所属栏目:[MySql教程] 日期:2019-09-25 热度:192
简述 在Oracle MySQL团队的推动下,MySQL 8.0发生了巨大的变化和修改。 物理文件已更改。例如,*.frm,* .TRG,*.TRN和* .par 不再存在。添加了大量的新特性,如通用表表达式(Common Table Expressions CTE),窗口函数(Window Functions),不可见索引([详细]
-
浅谈Redis中的全局命令
所属栏目:[MySql教程] 日期:2019-09-25 热度:68
在上一篇中我们已经介绍过了Redis有5种数据类型,但每一种数据类型底层的实现都是不同的,在学习Redis时,我们除了要掌握这5种数据类型外,还要了解它们具体的底层实现,这有助于我们更好的掌握Redis的,在遇到问题时,可以方便快速的解决问题,在这篇,我[详细]
-
这些常被忽视的SQL错误用法,你知道吗
所属栏目:[MySql教程] 日期:2019-09-25 热度:172
sql语句的执行顺序: FROM left_table ON join_condition join_type JOIN right_table WHERE where_condition GROUPBY group_by_list HAVING having_condition SELECT DISTINCT select_list ORDERBY order_by_condition LIMIT limit_number 1、LIMIT 语句[详细]
-
MySQL数据库监控指标之吞吐量
所属栏目:[MySql教程] 日期:2019-09-25 热度:193
概述 如果你的数据库运行缓慢,或者出于某种原因无法响应查询,技术栈中每个依赖数据库的组件都会遭受性能问题。为了保证数据库的平稳运行,你可以监控下吞吐量这个指标。 吞吐量 在监控任何系统时,我们最关心的应该是确保系统能够高效地完成工作。数据库[详细]
-
Oracle发布全球最快的数据库机器Exadata X8M
所属栏目:[MySql教程] 日期:2019-09-22 热度:194
Exadata X8M 是第一台具有集成持久内存和 RoCE 的数据库机器。Oracle 还宣布推出 Oracle 零数据丢失恢复设备 X8M(ZDLRA)。 Oracle 发布了新的 Exadata 数据库机器 X8M,旨在为数据库基础架构市场树立新的标杆。 Exadata X8M 结合了英特尔 Optane DC 持久[详细]
-
Oracle和MySQL的JDBC到底有多慢?
所属栏目:[MySql教程] 日期:2019-09-22 热度:178
经常听人说,数据库的IO性能不佳,但说归说,并没有感性认识。我们现在就来实际测试一下,常用的Oracle和MySQL的JDBC读取性能如何。 之所以测试JDBC,是因为大部分应用是JAVA写的,也就只能用JDBC来访问数据。这里仅测试用JDBC读出数据,并产生成Java的记[详细]
-
数据库缓存最终一致性的四种方案
所属栏目:[MySql教程] 日期:2019-09-22 热度:67
背景 缓存是软件开发中一个非常有用的概念,数据库缓存更是在项目中必然会遇到的场景。而缓存一致性的保证,更是在面试中被反复问到,这里进行一下总结,针对不同的要求,选择恰到好处的一致性方案。 缓存是什么 存储的速度是有区别的。缓存就是把低速存储[详细]
-
你不会还在用这8个错误的SQL写法吧?
所属栏目:[MySql教程] 日期:2019-09-22 热度:113
1、LIMIT 语句 分页查询是最常用的场景之一,但也通常也是最容易出问题的地方。比如对于下面简单的语句,一般 DBA 想到的办法是在 type, name, create_time 字段上加组合索引。这样条件排序都能有效的利用到索引,性能迅速提升。 SELECT* FROMoperation WH[详细]
-
一文带你揭开Redis复制原理的神秘面纱
所属栏目:[MySql教程] 日期:2019-09-20 热度:153
Redis作为一个非结构化的内存数据库,在某些应用场景具备相应优势,在实际的场景设计中也得到广泛的关注和使用。但是,大部分企业的Redis数据库架构为单机运行,没有设计容灾复制,这样对于Redis的容错特性没有发挥出来,而且无持久化情况下,数据存在丢失[详细]
-
详解MySQL查看数据库表容量大小的方法总结
所属栏目:[MySql教程] 日期:2019-09-20 热度:192
概述 今天主要介绍MySQL查看数据库表容量大小的几个方法,仅供参考。 1、查看所有数据库容量大小 SELECT table_schemaAS'数据库', sum(table_rows)AS'记录数', sum(TRUNCATE(data_length/1024/1024,2))AS'数据容量(MB)', sum(TRUNCATE(index_length/1024/1[详细]
-
12个适用于DBA的数据库管理和开发的SQL工具
所属栏目:[MySql教程] 日期:2019-09-20 热度:144
作为Web开发人员或数据库管理员,由于各种原因,经常需要处理SQL语句来探索数据库。比如:查询数据库、构建并执行SQL代码、生成报告、备份、诊断与数据库相关的应用程序问题,使用正确的工具可以加快与数据库相关的任务,并提高工作效率。以下工具使你可以[详细]
-
安全漏洞XSS、CSRF、SQL注入以及DDOS攻击
所属栏目:[MySql教程] 日期:2019-09-20 热度:82
随着互联网的普及,网络安全变得越来越重要,程序员需要掌握最基本的web安全防范,下面列举一些常见的安全漏洞和对应的防御措施。 0x01: XSS漏洞 1、XSS简介 跨站脚本(cross site script)简称为XSS,是一种经常出现在web应用中的计算机安全漏洞,也是web中[详细]
-
微服务架构下,利用Sharding-jdbc解决读写分离查询延迟问题
所属栏目:[MySql教程] 日期:2019-09-20 热度:66
前言 当Mysql数据库数据达到一定量后,查询SQL执行会变慢起来,除了建索引、优化程序代码以及SQL语句等常规手段外,利用经典MHA数据库中间件做数据库读写分离是一个不错的选择。但是在读写分离架构中会出现一个共性问题:SQL读取延迟。 读写实时场景 比如[详细]
-
MySQL EXPLAIN结果集分析 - 附带大量案例
所属栏目:[MySql教程] 日期:2019-09-20 热度:85
EXPLAIN:查看SQL语句的执行计划 EXPLAIN命令可以帮助我们深入了解MySQL基于开销的优化器,还可以获得很多可能被优化器考虑到的访问策略的细节,以及当运行SQL语句时哪种策略预计会被优化器采用,在优化慢查询时非常有用。 执行explain之后结果集包含如下[详细]
-
一文看懂MySQL如何查看数据库表容量大小
所属栏目:[MySql教程] 日期:2019-09-20 热度:100
今天主要介绍MySQL查看数据库表容量大小的几个方法,仅供参考。 1. 查看所有数据库容量大小 SELECT table_schemaAS'数据库', sum(table_rows)AS'记录数', sum(TRUNCATE(data_length/1024/1024,2))AS'数据容量(MB)', sum(TRUNCATE(index_length/1024/1024,2[详细]
-
基于时序数据库做监控,这里有超流行的开源方案
所属栏目:[MySql教程] 日期:2019-09-20 热度:200
在微服务架构下,我们对服务进行了拆分,所以用户的每次请求不再是由某一个服务独立完成了,而是变成了多个服务一起配合完成。这种情况下,一旦请求出现异常,我们必须得知道是在哪个服务环节出了故障,就需要对每一个服务,以及各个指标都进行全面的监控[详细]