5 步优化 MongoDB 以及其它数据库 – 后端 – 掘金
原文链接 Jared Rosoff 在 Scale Out Camp 发表了一篇简洁、有效、有趣和令人信服的《8 分钟 MongoDB 教程》描述了如何进行 MongoDB 优化。 文中的方法不仅限于 MongoDB,还可应用到绝大多数数据库,比如查询优化、找…
MySQL 处理海量数据时的一些优化查询速度方法 – 后端 – 掘金
在参与实际项目中,当 MySQL 表的数据量达到百万级时,普通的 SQL 查询效率呈直线下降,而且如果 where 中的查询条件较多时,其查询速度无法容忍。想想可知,假如我们查询淘宝的一个订单详情,如果查询时间高达几十秒,这么高的查询延时,任何用户都会抓狂。因…
Mysql 你必须知道的查询语句 – 后端 – 掘金
引言 在Mysql数据库的操作中有核心的两种语言,一种是DDL(Data Definition Language),翻译为数据定义语言,它主要是对数据库,表的创建,修改和删除。另外一种叫D…
InnoDB 存储引擎 MVCC 实现原理 – 后端 – 掘金
简单背景介绍 MySQL MySQL是现在最流行的关系型数据库(RDB)的选择, 创建一个应用时,无论是用户数据还是订单数据,使用关系型数据库存储是最可靠稳定的选择,借助RDB提供的可靠性、事务等功能,…
MySQL 性能测试经验 – 后端 – 掘金
作者 |何龙编辑 | 顾乡 一、背景 近期在进行资源调度管理平台的重构工作,其中的Resource/Property数据库设计,在没有更加优化的方案前,打算沿用当前平台的数据库结构;这就需要对当前平台的数据库结构进行剖析研究,并对其性能进行测试与分析,得出的数…
《SQL 必知必会》学习笔记 – 后端 – 掘金
基本常识 去掉返回结果空格 两边都去掉:TRIM 去掉左边:LTRIM 去掉右边:RTRIM …
MySQL 排序内部原理探秘 – 后端 – 掘金
一、我们要解决什么问题 MySQL排序其实是一个老生常谈的问题了,但是我们这次想由浅入深详细说说MySQL排序模式,怎么影响MySQL选择不同的排序模式和怎么优化排序。 …
MySQL 读写分离实战 – 后端 – 掘金
【分布式架构初探】 第四节-MySQL读写分离实战 4.1 预备工具以及环境 4.2 虚拟机的准备 4.3 CentOS7的安装 4.4 MySQL数据库的安装 4.5 MySQL主从配置(一主…
服务端指南 数据存储篇 | MySQL(06) 数据库安全性 – 掘金
数据库的安全性,即保护数据库,防止未经授权或不合法的使用而造成的数据泄漏和更改破坏。因此,保护数据库的安全性的一般方法是设置用户标识和权限控制。 原文地址:服务端指南 数据存储篇 | MySQL(06) 数据库安全性博客地址:http://blog.720ui…
MySQL 慢查询 & 分析 SQL 执行效率浅谈 – 后端 – 掘金
如何在MySQL中查找效率慢的SQL语句呢?这可能是困扰很多人的一个问题,MySQL通过慢查询日志定位那些执行效率较低的SQL 语句,用–log-slow-queries[=file_name]选项启动时,mysqld 会写一个包含所有执行时间超过long_…
MySQL/MariaDB 性能调优工具 mytop – 后端 – 掘金
MySQL/MariaDB性能调优工具mytop mytop为MariaDB自带工具,但MySQL并没有携带该工具,需要自行安装。安装方式请自行google== …
MYSQL 数据库常见的优化操作 – 后端 – 掘金
一、Index索引 将Index放第一位,不用说,这种优化方式我们一直都在悄悄使用,那便是主键索引。有时候我们可能并不在意,如果定义适合的索引,数据库查询性能(速度)将提高几倍甚至几十倍。 普通索引 …
一步一步打造 MySQL 高可用平台 – 后端 – 掘金
一 、引子 笔者刚开始进入公司的时候,主要是忙于分布式MySQL系统—-MyShard的构建,公司使用了大量的IDC机房,基于这种网络特点,MyShard设计当初完全是为了是一套支持Multi-Master操作的高可用性的分…
MySQL 锁总结 – 后端 – 掘金
MySQL 锁基础 参考了何登成老师文章的结构MySQL 加锁处理分析,中间又加了一些自己觉得需要考虑的情况。 分析本session的加锁方式 系统的隔离级别是什么?是RC还是RR? 判断SQL的加锁类型,是共享锁还是排他锁? SQ…
MySQL 占用空间一键查询实践 – 后端 – 掘金
作者 | 莫韵编辑 | 京露 莫韵,高级运维工程师。devops/sre观念的支持者,曾在迅雷担任运维工程师,精通CDN、大数据、海量运维之道。 目前就职于互联网企业担任业务系统运维职位,致力于高效运维实践。 经常会遇到DB满的情况 特别是大家共用…
服务端指南 数据存储篇 | MySQL(05) 索引的排序优化方案 – 掘金
原文地址:服务端指南 数据存储篇 | MySQL(05) 索引的排序优化方案博客地址:http://blog.720ui.com/ MySQL可以利用索引来快速地执行 ORDER BY 和 GROUP BY 语句的排序和分组操作。因此,在数据库设计时,设计索…
mysql 怎么通过 frm 和 ibd 文件还原数据 – 后端 – 掘金
1、找回表结构,如果表结构没有丢失直接到下一步 a、先创建一个数据库,这个数据库必须是没有表和任何操作的。 b、创建一个表结构,和要恢复的表名是一样的。表里的字段无所谓。一定要是i…
理解事务 – MySQL 事务处理机制 – 后端 – 掘金
事务 数据库事务 数据库事务(Database Transaction),是指作为单个逻辑工作单元执行的一系列操作,要么完全执行,要么完全地不执行。 ACID …
服务端指南 数据存储篇 | MySQL(04) 索引使用的注意事项 | 掘金技术征文 – 掘金
MySQL 索引通常是被用于提高 WHERE 条件的数据行匹配时的搜索速度,在索引的使用过程中,存在一些使用细节和注意事项。 原文地址:服务端指南 数据存储篇 | MySQL(04)索引使用的注意事项博客地址:http://blog.720ui.com/ …
MySQL 前缀索引——让索引减负狂奔 – 掘金
什么是前缀索引 我们吃甘蔗的时候,若出现虫蛀情况,我们不能判断虫蛀的范围有大,如果为了省事,直接砍去若干节,虫蛀残留的概率就会小很多,但是很可能损失更多的可食用甘蔗。如果一点点地削,直至虫蛀不再出现为止,看起来多花了点功夫,但是浪费的少,也只值得。 相…
浅析 MySQL Replication – 后端 – 掘金
目前很多公司中的生产环境中都使用了MySQL Replication ,也叫 MySQL 复制,搭建配置方便等很多特性让 MySQL Replication 的应用很广泛,我们曾经使用过一主拖20多个从库来分担业务压力。关于 MySQL Replication…
MySQL 的七种 join – 后端 – 掘金
对于SQL的Join,在学习起来可能是比较乱的。我们知道,SQL的Join语法有很多inner的,有outer的,有left的,有时候,对于Select出来的结果集是什么样子有点不是很清楚。Coding Horror上有一篇文章(实在不清楚为什么Coding …
概述 我们在考虑MySQL数据库的高可用的架构时,主要要考虑如下几方面: 如果数据库发生了宕机或者意外中断等故障,能尽快恢复数据库的可用性,尽可能的减少停机时间,保证业务不会因为数据库的故障而中断。 用作备份、只读副本等功能的非主节点的…
MySQL,从入门到熟练 – 后端 – 掘金
在《写给新人的数据库指南》,我们已经成功的安装数据库,并且导入数据,今天进入MySQL的实战练习。SQL是数据库的查询语言,语法结构简单,相信本文会让你从入门到熟练。 掌握SQL后,不论你是产品经理、运营人员或者数据分析师,都会让你分析的能力边界无限拓展。别犹…
MySQL 的架构演化 – 后端 – 掘金
3.1 来自海豚的告白3.2 单节点数据库3.3 一主一从架构3.4 Master/Slave 复制原理及方式3.5 一主多从架构3.6 双主多从架构3.7 Mysql Sharding3.8 小张讲解3.9 课后作业 …
MySQL 常用数据存储引擎区别 – 后端 – 掘金
mysql有多种存储引擎,目前常用的是 MyISAM 和 InnoDB 这两个引擎,除了这两个引擎以为还有许多其他引擎,有官方的,也有一些公司自己研发的。这篇文章主要简单概述一下常用常见的 MySQL 引擎,一则这是面试中常被问到的问题,二则这也是数据库设计中…
MySQL 数据库复制概论 – 后端 – 掘金
每当我们讨论一项(新的)领域技术的时候,最好的方式通常是首先抛出一些问题,这些问题大致分为三类:诶?这项技术又是什么玩意(What)?这项技术为什么会存在?我们已经有那么多解决方案(Method)了,我们问什么要用它(Why)?如果这项技术那么好且我们正好有场…
关于 MySQL 你可能不知道的 SQL 使用技巧 – 后端 – 掘金
近来处理了比较多的数据库维护工作,对 SQL 的语法也算有了更深层次的认识,也学到了很多以前没有用过的 SQL 语法技巧,这里统一整理一下,希望对读者也有所启发。 本文将主要介绍一些我认为有用的 SQL 语法和技巧,并通过适当案例说明,但案例本身做了简化处理,…
MYSQL 数据库常见的优化操作 – 后端 – 掘金
一、Index索引 将Index放第一位,不用说,这种优化方式我们一直都在悄悄使用,那便是主键索引。有时候我们可能并不在意,如果定义适合的索引,数据库查询性能(速度)将提高几倍甚至几十倍。 普通索引 …
服务端指南 数据存储篇 | MySQL(05) 索引的排序优化方案 – 掘金
原文地址:服务端指南 数据存储篇 | MySQL(05) 索引的排序优化方案博客地址:http://blog.720ui.com/ MySQL可以利用索引来快速地执行 ORDER BY 和 GROUP BY 语句的排序和分组操作。因此,在数据库设计时,设计索…
服务端指南 数据存储篇 | MySQL(04) 索引使用的注意事项 | 掘金技术征文 – 掘金
MySQL 索引通常是被用于提高 WHERE 条件的数据行匹配时的搜索速度,在索引的使用过程中,存在一些使用细节和注意事项。 原文地址:服务端指南 数据存储篇 | MySQL(04)索引使用的注意事项博客地址:http://blog.720ui.com/ …
MySQL 常用数据存储引擎区别 – 掘金
MySQL 有多种存储引擎,目前常用的是 MyISAM 和 InnoDB 这两个引擎,除了这两个引擎以为还有许多其他引擎,有官方的,也有一些公司自己研发的。这篇文章主要简单概述一下常用常见的 MySQL 引擎,一则这是面试中常被问到的问题,二则这也是数据库设计…
让写入数据库的数据自动写入缓存 – 后端 – 掘金
在项目开发中,为了减轻数据库的 I/O 压力,加快请求的响应速度,缓存是常用到的技术。Redis 和 Memcache 是现在常用的两个用来做数据缓存的技术。数据缓存一些常见的做法是,让数据写入到数据库以后通过一些自动化的脚本自动同步到缓存,或者在向数据库写数…
mysql 统计一个列中不同值的数量 – 后端 – 掘金
MySQL 统计一个列中不同值的数量 需求场景 这个需求其实十分普遍,举例来说,我们存在一个用户来源表,用来标记用户从哪个渠…
(10)mysql 中的变量 – 掘金
定义变量 语法如下 declare var_name[,…] type [default value];MYSQL 变量定义只能在存储过程或函数里面定义,不像 Oracle / SQL Server。该变量的作用范围只能在begin…end块中。变量定…
Mysql 学习笔记 – 基础概念 – Android – 掘金
基本概念 关系型数据库 定义:关系型数据库是一种建立在关系模型上的数据库 关系模型(背): 数据结构:数据的存储问题(二维表) 操作指令集:SQL语句 …
Mysql 学习笔记 – 数据类型 – Android – 掘金
分类 数值型 ###整数型 类型 大小 范围(有符号) 范围(无符号) 用途 …
MySQL入门教程系列-1.2 数据库技术构成 – 掘金
数据库技术构成 共同编辑,修正错误,这里点击进去 数据库技术的出现是为了更加有效的管理和存取大量的数据资源。简单的来讲,数据库技术主要包括数据库系统,SQL语言,数据库访问技术。 数据库系统 数据库系统有3个主要的组成部分。 数据库 数据库(Datab…
【从零开始学习 MySql 数据库】(5) 约束视图与索引 – 掘金
— 主键约束:PRIMARY KEY=不重复+不为NULL; — (列级约束条件) CREATE TABLE dept_dylan ( dept_id INT (2) PRIMARY KEY, dept_name VARCHAR (20)…
【从零开始学习MySql数据库】(4)创建表与增删改和数据库事务 – 掘金
— 数据准备:创建工资等级表 CREATE TABLE salgrade_test ( grade INT (2), lowsal FLOAT (7, 2), hisal FLOAT (7, 2) ); — 查看工资等级表结构 DESC salgrade_…
【从零开始学习 MySql 数据库】(3) 函数与子查询和连接查询 – 掘金
查询语句的基本格式 #select 字段 1 , 字段 2 , 字段 3 , 表达式 , 函数 , … #from 表名 #where 条件 #group by 列名 #having 带组函数的条件 #order by 列名 #字符函数:upper /…
函数 use test; #查看员工表数据 SELECT FROM emp_test; #查看部门表数据 SELECT FROM dept_test; #round( 数字 , 小数点后的位数 )用于数字的四舍五入 #计算金额的四舍五入 #注意…
【从零开始学习 MySql 数据库】(1) 建表与简单查询 – 掘金
查看服务器中的数据库 SHOW DATABASES; #创建一个数据库 CREATE DATABASE IF NOT EXISTS test; #使用test数据库 USE test; #建表 — 表名丌能超过 30 个字符 — 表名、列名是自由定…
关于 mysql 中的 select * from table_a,table_b 的问题 – 掘金
/ <![CDATA[ / @import url(“http://sunms.codefly.top/wp-content/plugins/wp-table-reloaded/css/plugin.css?ver=1.9.4”); @import url…
图解 SQL 的 JOIN – 后端 – 掘金
对于SQL的Join,在学习起来可能是比较乱的。我们知道,SQL的Join语法有很多inner的,有outer的,有left的,有时候,对于Select出来的结果集是什么样子有点不是很清楚。Coding Horror上有一篇文章(实在不清楚为什么Coding …
能不加字段就不要加, 能不修改字段就不要修改, 能不删除字段就不要删除, 等等为什么要删除字段呢? 如果没事,不要蛋疼的找事。 实际上,我们那次更新失败后, 我们并没有增加那个字段, 然后我们一直运行到今天, 但是后来还是增加了其他字段2. 增加字段的情…
MySQL 大表优化方案 – 后端 – 掘金
当MySQL单表记录数过大时,增删改查性能都会急剧下降,可以参考以下步骤来优化: 单表优化 除非单表数据未来会一直不断上涨,否则不要一开始就考虑拆分,拆分会带来逻辑、部署、运维的各…
【译】2017 年你应该学习的编程语言、框架和工具 – 前端 – 掘金
在过去的一年里,软件开发行业继续大踏步地向前迈进。回顾 2016 年,我们看到了更多新兴的流行语言、框架和工具,它们改变着我们的工作方式,让我们看到更多的可能。但在这个行业,紧随潮流是很难的。所以在每年年底,我们都会给你提供一些建议,它涉及什么是最重要的,以及…
20 分钟 MySQL 基础入门 – 工具资源 – 掘金
这里持续更新修正 开始使用 MySQL 为关系型数据库(Relational Database Management System),一个关系型数据库由一个或数个表格组成, 如图所示的一个表格: 表头(header): 每一列的名称; 列(row): 具有…
mysql count 多个表数据 – 后端 – 掘金
mysql count多个表的数据 需求描述 这两天在做成就系统,成就中有很多维度都和数量有关,比如用户粉丝数达到多少50个,授予 名扬四海 称号,用户点赞达到 100 次,授予 点赞圣手 称号等等。 粉丝数在 user_relation 表 点赞数…
MySQL 实战 – 关于索引的主要事项 – 后端 – 掘金
关于索引的主要事项 不要在列上进行运算不要在列上进行运算,这将导致索引失效而进行全表扫描。例如 select from user where YEAR(birthday)<1990 可以改造成 select from users whe…
InnoDB 的锁机制 – 后端 – 掘金
写在前面使用数据库时,想要较高的吞吐、较低的延迟,但又想在高并发下可以一致地读写数据,因此需要高效的锁机制。 InnoDB中的锁可以分为: latch:程序上的锁机制,用来锁定内部对象,没有死锁检测; lock:用来锁定数据库中的对象,比如表、页、行,有死锁…
用 ElasticSearch 监控 MySQL – 后端 – 掘金
版权申明:此文章首发于公众号程序员在深圳,搜索 studycode 即可关注本文无需授权即可转载,转载时请务必注明作者 本文是一个使用ELK来监控mysql的介绍,基本监控了一些关键指标,当然根据业务的不同,可能有不同的指标需求,但使用该方法监控,原理不会变化…
MySQL 数据库设计总结 – 后端 – 掘金
规则1:一般情况可以选择MyISAM存储引擎,如果需要事务支持必须使用InnoDB存储引擎。 注意:MyISAM存储引擎 B-tree索引有一个很大的限制:参与一个索引的所有字段的长度之和不能超过1000字节。另外MyISAM数据和索引是分开,而InnoDB的…
MySQL 字符集中文乱码剖析 – 后端 – 掘金
问题描述假设有三个表test_gbk,test_utf8,test_latin1,创建的时候字符集分别为gbk,utf8,latin1。表结构为 Field Type Null Key Default Extra name varchar(512…
Mysql常用SQL语句集锦 | 掘金技术征文 – 掘金
基础篇 //查询时间,友好提示 $sql = “select date_format(create_time, ‘%Y-%m-%d’) as day from table_name”;//int 时间戳类型 $sql = “select from_unixt…
【从零开始学习 MySql 数据库】(1) 建表与简单查询 – 掘金
查看服务器中的数据库 SHOW DATABASES; #创建一个数据库 CREATE DATABASE IF NOT EXISTS test; #使用test数据库 USE test; #建表 — 表名丌能超过 30 个字符 — 表名、列名是自由定…
函数 use test; #查看员工表数据 SELECT FROM emp_test; #查看部门表数据 SELECT FROM dept_test; #round( 数字 , 小数点后的位数 )用于数字的四舍五入 #计算金额的四舍五入 #注意…
【从零开始学习 MySql 数据库】(3) 函数与子查询和连接查询 – 掘金
查询语句的基本格式 #select 字段 1 , 字段 2 , 字段 3 , 表达式 , 函数 , … #from 表名 #where 条件 #group by 列名 #having 带组函数的条件 #order by 列名 #字符函数:upper /…
【从零开始学习MySql数据库】(4)创建表与增删改和数据库事务 – 掘金
— 数据准备:创建工资等级表 CREATE TABLE salgrade_test ( grade INT (2), lowsal FLOAT (7, 2), hisal FLOAT (7, 2) ); — 查看工资等级表结构 DESC salgrade_…
【从零开始学习 MySql 数据库】(5) 约束视图与索引 – 掘金
— 主键约束:PRIMARY KEY=不重复+不为NULL; — (列级约束条件) CREATE TABLE dept_dylan ( dept_id INT (2) PRIMARY KEY, dept_name VARCHAR (20)…
MySQL入门教程系列-1.5 如何学习MySQL – 掘金
在这里持续更新 MySQL入门教程系列-1.5 如何学习MySQL 如何学习 MySQL 这是一个伪命题,每个人都有适合自己的一套学习方法,各不相同,所以如何学习 MySQL 这个活儿,我没有办法告诉你我的这个学习方法就是你做好的学习方法,所以在学习 MyS…
MySQL入门教程系列-1.4 MySQL工具 – 掘金
MySQL工具 共同编辑,修正错误,这里点击进去 在这里持续更新 由于 MySQL 软件是基于 C/S 模式的数据库管理系统(一个客户机—服务器DBMS),因此在日常各种工作中,可以通过各种客户端软件来与 MySQL 数据库管理系统关联。MySQL,需…
MySQL 入门教程【一件伟大的事情正在发生中】 – 阅读 – 掘金
MySQL入门教程 从零开始学习MySQL,主要是面向MySQL数据库管理系统初学者。身为前端开发工程师为什么写这个破玩意儿呢,最近项目强迫我这个前端老司机使用MySQL,虽然我在项目中已经使用过一段时间,为了写出高质量的SQL语句,系统的过一遍基础,你也…
mysql 死锁问题分析 – 后端 – 掘金
线上某服务时不时报出如下异常(大约一天二十多次):“Deadlock found when trying to get lock;”。 Oh, My God! 是死锁问题。尽管报错不多,对性能目前看来也无太大影响,但还是需要解决,保不齐哪天成为性能…
从 MySQL 到 Kafka,如何管理每天实时发布的几十亿条消息? – 后端 – 掘金
当你的系统每天要实时从MySQL到Kafka发布几十亿条消息时,你会怎么管理这些数据的模式信息呢?当你的系统要接入几百个服务时,你就要处理几千种不同的模式,手工管理是不可行的。必须有自动化的方案来处理从上游数据源到所有下游消费者的模式改变问题。Confluen…
MySQL 事务学习总结 – 后端 – 掘金
关于事务,常看到的概念就是ACID,从单机发展到分布式后,又出现了CAP原理和BASE思想。这里将我最近学习的单机事务做个总结,方便温故知新,后面所有的内容都是基于MySQL/InnoDB的。 隔离级别 脏读 不可重复读 幻象读 第一类更新丢失 第二类更…
Amazon 和 Mysql 之间的那点事儿 – 后端 – 掘金
公司项目初始,就使用了亚马逊的各项云服务,亚马逊的各项服务真的非常棒,大大简化了公司产品的扩容和运维工作。 之前公司使用亚马逊的 EC2 实例,一切都非常好。随着业务的扩展,客户需要 mysql 关系型数据库,为了使用方便,我们选了亚马逊提供的 RDS 服务,…
20 分钟 MySQL 基础入门 – 工具资源 – 掘金
这里持续更新修正 开始使用 MySQL 为关系型数据库(Relational Database Management System),一个关系型数据库由一个或数个表格组成, 如图所示的一个表格: 表头(header): 每一列的名称; 列(row): 具有…
MySQL 大表优化方案 – 阅读 – 掘金
当MySQL单表记录数过大时,增删改查性能都会急剧下降,可以参考以下步骤来优化: 单表优化 除非单表数据未来会一直不断上涨,否则不要一开始就考虑拆分,拆分会带来逻辑、部署、运维的各种复杂度,一般以整型值为主的表在千万级以下,字符串为主的表在五百万以下是没有太大…
【从零开始学习 MySql 数据库】(5) 约束视图与索引 – 掘金
— 主键约束:PRIMARY KEY=不重复+不为NULL; — (列级约束条件) CREATE TABLE dept_dylan ( dept_id INT (2) PRIMARY KEY, dept_name VARCHAR (20)…
【从零开始学习MySql数据库】(4)创建表与增删改和数据库事务 – 掘金
— 数据准备:创建工资等级表 CREATE TABLE salgrade_test ( grade INT (2), lowsal FLOAT (7, 2), hisal FLOAT (7, 2) ); — 查看工资等级表结构 DESC salgrade_…
【从零开始学习 MySql 数据库】(3) 函数与子查询和连接查询 – 掘金
查询语句的基本格式 #select 字段 1 , 字段 2 , 字段 3 , 表达式 , 函数 , … #from 表名 #where 条件 #group by 列名 #having 带组函数的条件 #order by 列名 #字符函数:upper /…
函数 use test; #查看员工表数据 SELECT FROM emp_test; #查看部门表数据 SELECT FROM dept_test; #round( 数字 , 小数点后的位数 )用于数字的四舍五入 #计算金额的四舍五入 #注意…
【从零开始学习 MySql 数据库】(1) 建表与简单查询 – 掘金
查看服务器中的数据库 SHOW DATABASES; #创建一个数据库 CREATE DATABASE IF NOT EXISTS test; #使用test数据库 USE test; #建表 — 表名丌能超过 30 个字符 — 表名、列名是自由定…
(18)mysql 中的分区(开发篇完) – 掘金
概述 之前,看到分区,我捏个去,好高大上哟。昨天终于知道了分区是个啥玩意,也不过如此,今天总结一下,好记性不如烂笔头嘛。 MySQL从5.1开始支持分区功能。分区一句话就是:把一张表按照某种规则(range/list/hash/key等)分成多个区域(页…
(17)sql注入与sql mode – 掘金
概述 sql注入就是利用某些数据库的外接接口将用户数据插入到实际的数据库操作语言当中,从而达到入侵数据库乃至操作系统的目的。在安全领域,我们永远不要信任用户的输入,我们必须认定用户输入的数据都是不安全的,我们都需要对用户输入的数据进行过滤处理。没有(运行时…
(16)mysql 中的表锁定及事务控制 – 掘金
概述 MySQL支持三种锁级别:页级、表级、行级。MyISAM和MEMORY存储引擎采用的是表级锁(table-level locking);BDB存储引擎采用的是页面锁(page-level locking),但也支持表级锁;InnoDB存储引擎既支持行级锁…
(15)mysql 中的触发器 – 掘金
概述 触发器,顾名思义就是当某个事情(事件)发生时候,执行某一段程序。触发器有四大要素:监视地点(table_name)、监视事件(insert/update/delete)、触发时间(before/after)、触发执行程序(insert/update/de…
(14)mysql 中的事件 – 掘金
概述 事件调度器是MySQL5.1后新增的功能,可以将数据库按自定义的时间周期触发某种操作,可以理解为时间触发器,类似于linux系统下面的任务调度器crontab,或者类似与window下面的计划任务。值得一提的是MySQL的事件调度器可以精确到每秒钟执行一…
(13)mysql 中的流程控制 – 掘金
概述 在mysql中可以使用if/case/loop/leave/iterate/repeat/while语句进行流程控制。 if语句 if语句实现条件判断,类似高级语言(c/c++/php/java等)中的if语句。 if search_condition …
(12)mysql 中的光标 – 掘金
概述 查询语句可能查询出多条记录,在存储过程和函数中使用光标来逐条读取查询结果集中的记录。有些书上将光标称为游标。光标的使用包括声明光标、打开光标、使用光标和关闭光标。光标必须声明在处理程序之前,并且声明在变量和条件之后。光标可以类比为数组内部中的循环指针。 …
(11)mysql 中的条件定义、处理 – 掘金
概述 在MySQL中,特定异常需要特定处理。这些异常可以联系到错误,以及子程序中的一般流程控制。定义异常是事先定义程序执行过程中遇到的问题,异常处理定义了在遇到问题时对应当采取的处理方式,并且保证存储过程或者函数在遇到错误时或者警告时能够继续执行。这样可以增强…
(10)mysql 中的变量 – 掘金
定义变量 语法如下 declare var_name[,…] type [default value];MYSQL 变量定义只能在存储过程或函数里面定义,不像 Oracle / SQL Server。该变量的作用范围只能在begin…end块中。变量定…
(9)mysql 中的存储过程和自定义函数 – 掘金
概述 存储过程和自定义函数是事先经过编译并存储在数据库中的一段SQL语句的集合。相对普通查询优点: 可以简化应用开发人员的工作,可重用。 减少数据库与应用服务器之间的数据传输。 提高了数据处理的效率。 安全性提高。由于存储过程也可以使用权限控制,而且参数化的…
(8)mysql 中的视图 – 掘金
概念 视图是一种虚拟存在的表,对于使用视图的用户来说,基本上跟使用正常的表一样。视图在数据库中是不存在的,视图中的数据是动态生成的。 视图相对于普通表的优势: 简单:使用视图不需要关心后面的表的对应结构条件,对于使用者来说,视图是过滤好的结果集。 安全…
(7)mysql 索引的设计和使用 – 掘金
概述 索引用于快速找出在某个列中有一特定值的行。不使用索引,MySQL必须从第1条记录开始然后读完整个表直到找出相关的行。表越大,花费的时间越多。如果表中查询的列有一个索引,MySQL能快速到达一个位置去搜寻到数据文件的中间,没有必要看所有数据。 在My…
(6)mysql 中的字符集 – 掘金
概述 从本质上来讲,计算机只识别二进制代码,因此,不论计算机程序还是其处理的数据,最终都必须转化为二进制码,计算机才能识别。人们给每一个文字符号编码以便计算机识别处理,这就是计算机字符集的由来。 选择合适的字符集 MySQL5.6支持几十种字符集,包括UC…
(5)mysql 常用存储引擎 – 掘金
概述 mysql5.5之前默认存储引擎是MyISAM,5.5之后改为InnoDB。若要修改默认引擎,可以修改配置文件中的default-storage-engine。可以通过show engines来查看当前数据库支持的引擎。使用select engine…
(4)mysql 中的常用函数 – 掘金
概述 mysql提供了很多内建函数,其中常用的函数有: 字符串函数 日期函数 数值函数 我一般建议,能在后台语言(php,java,c#等)中使用的类似函数,就在后台语言中使用,这样减少mysql压力,和保证逻辑性。 字符串函数 函数 功能 …
(3)mysql 中的运算符 – 掘金
概述 MySQL支持多种类型的运算符,这些运算符可以用来链接表达式,这些运算符包括: 算数运算符(+,-,*,/,%); 比较运算符(=,!=,<,<=,>,>=,between,in,is null,is not null,like…
(2)mysql 支持的数据类型总结 – 掘金
概述 mysql支持的数据分为3部分: 数值类型 日期时间类型 字符串类型 先扔一张大图做总结:mysql支持数据类型总结 数值类型 MySQL支持所有标准的SQL中的数值类型 1.整型数值 整数类型 字节数 最小值 ~ 最大值 tinyin…
(1)SQL 基本查询 – 掘金
该篇文章主要是对mysql的查漏补缺,该篇包括: 排序和限制 聚合 表联结 子查询与联合 排序和限制 使用关键字 order by和limit; //排序 select * from tablename [where condition] [ord…
非官方的 MySQL 8.0 优化指南 – 后端 – 掘金
非官方的 MySQL 8.0 优化指南…
使用mysql日期与时间函数轻易搞定日期与时间逻辑 – 掘金
mysql查询当天的数据: select* from procurement where date(createDate)=curdate() order by refreshDatetime desc ;mysql查询过去几天的数据: …
微博的 MySQL 数据库优化实践经验 – 后端 – 掘金
【编者的话】数据库是所有架构中不可缺少的一环,一旦数据库出现性能问题,那对整个系统都会来带灾难性的后果。并且数据库一旦出现问题,由于数据库天生有状态(分主从)带数据(一般还不小),所以出问题之后的恢复时间一般不太可控,所以,对数据库的优化是需要我们花费很多精力…
MySQL 读写分离介绍及搭建 – 后端 – 掘金
MySQL读写分离基本原理是让master数据库处理写操作,slave数据库处理读操作。master将写操作的变更同步到各个slave节点。MySQL读写分离能提高系统性能的原因在于:物理服务器增加,机器处理能力提升。拿硬件换性能。主从只负责各自的读和写,极大…
MySQL5.7 中新增的 JSON 类型的使用方法 – 后端 – 掘金
创建表json_test:CREATE TABLE json_test(id INT(11) AUTO_INCREMENT PRIMARY KEY,person_desc JSON)ENGINE INNODB;插入一条记录:INSERT INTO json_t…
mysql 悲观锁详解 – 后端 – 掘金
悲观锁指的是对数据被外界(包括本系统当前的其他事务,以及来自外部系统的事务处理)修改持保守态度,因此,在整个数据处理过程中,将数据处于锁定状态。悲观锁的实现,往往依靠数据库提供的锁机制(也只有数据库层提供的锁机制才能真正保证数据访问的排他性,否则,即使在本系统…
mysql 乐观锁详解 – 后端 – 掘金
乐观锁:乐观锁( Optimistic Locking ) 相对悲观锁而言,乐观锁机制采取了更加宽松的加锁机制。悲观锁大多数情况下依靠数据库的锁机制实现,以保证操作最大程度的独占性。但随之而来的就是数据库性能的大量开销,特别是对长事务而言,这样的开销往往无法承…
让 MySQL 支持 emoji 图标存储 – 后端 – 掘金
在MySLQ中 UPDATA 和 INSERT 数据的时候,如果数据上面带有emoji图标,例如:?、?、?很容易更新活着插入不成功,导致报错。 Error: ER_TRUNCATED_WRONG_VALUE_FOR_FIELD: Incorrect…
mysql 查询两个日期之间的最大连续天数 – 后端 – 掘金
利用 sql 语句查询两个日期之间,用户连续不间断的登录次数 需求描述 今天新来的需求,一个成就系统,其中有一个成就就是根据用户连续记录天数来计算的,求出用户在一段时间内最大的连续记录时间,例如在 2016-01-01 和 2016-01-28 之间,…
mysql count 多个表数据 – 后端 – 掘金
mysql count多个表的数据 需求描述 这两天在做成就系统,成就中有很多维度都和数量有关,比如用户粉丝数达到多少50个,授予 名扬四海 称号,用户点赞达到 100 次,授予 点赞圣手 称号等等。 粉丝数在 user_relation 表 点赞数…
表情在 MySQL 的存储详解 – 后端 – 掘金
MySQL支持android和ios表情,需要做一些特别处理。 普通的字符串或者表情都是占位3个字节,所以utf8足够了,但是移动端的表情符号占位是4个字节,普通的utf8就不够用了。 utf8mb4方案数据库采用utf8mb4字符集。 首先,修改数据库的字…
Mysql 使用命令及 sql 语句示例 – 后端 – 掘金
–致谢河南理工大学的学长 前言 Mysql 是数据库开发使用的主要平台之一。sql 的学习掌握与使用是数据库开发的基础,此处展示详细sql 语句的写法,及各种功能下的 sql 语句。 在此处有 sql 语句使用示例:在这里 此处插入两张…
MySQL 实战 – 关于索引的主要事项 – 后端 – 掘金
关于索引的主要事项 不要在列上进行运算不要在列上进行运算,这将导致索引失效而进行全表扫描。例如 select from user where YEAR(birthday)<1990 可以改造成 select from users whe…
MySQL · 8.0.0 新特性 · 持久化自增列值 – 后端 – 掘金
摘要: Worklog: WL#6204 这是MySQL8.0修复的上古bug之一,在2003年由Percona的CEO(当时应该还没Percona吧)提出的bug#199,光看这bug号就扑面而来一股上古时代的沧桑气息。 问题的本质在于Inno…
mysql 死锁问题分析 – 后端 – 掘金
线上某服务时不时报出如下异常(大约一天二十多次):“Deadlock found when trying to get lock;”。 Oh, My God! 是死锁问题。尽管报错不多,对性能目前看来也无太大影响,但还是需要解决,保不齐哪天成为性能…
SQL 简明教程 – 后端 – 掘金
数据类型 数据库的数据类型有很多,各个数据库的实现也有所不同,这里只列出常用的几个类型,并做详细说明(以MySQL数据库为例)。 char(n):char是定长的,也就是当你输入的字符小于你指定的数目时,char(8),你输入的字符小于8时,它会再后…
MySQL 中的读锁和写锁 – 后端 – 掘金
在数据库的锁机制中介绍过,数据的锁主要用来保证数据的一致性的,数据库的锁从锁定的粒度上可以分为表级锁、行级锁和页级锁。在我的博客中重点介绍过MySQL数据库的行级锁。这篇文章主要来介绍一下MySQL数据库中的表级锁。本文提到的读锁和写锁都是MySQL数据库的M…
MySQL5.7 JSON 实现简介 – 后端 – 掘金
本文主要介绍在MySQL 5.7.7开始引入的非结构化数据类型JSON的特性以及具体的实现方式(包括存储方式)。首先介绍为什么要引入JSON的原生数据类型的支持;接着介绍MySQL给用户提供的JSON操作函数,以及JSON路径表达式语法,结合两者,用户可以在数…
MySQL 数据库的高可用性分析 – 后端 – 掘金
MySQL数据库是目前开源应用最大的关系型数据库,有海量的应用将数据存储在MySQL数据库中。存储数据的安全性和可靠性是生产数据库的关注重点。本文分析了目前采用较多的保障MySQL可用性方案。 MySQL ReplicationMySQL Replicatio…
库存-Mysql中的事务、锁与存储引擎 – 掘金
设计一个库存系统。在库存系统中,最重要的就是要防止超卖。模拟的SQL语句如下:首先查询是否有剩余量,正常的操作为: select * from t_goods where id=1 and rest>0;然后发现有剩余量,开始执行更新操作: upd…
五分钟搞清楚 MySQL 事务隔离级别 – 后端 – 掘金
好久没碰数据库了,只是想起自己当时在搞数据库的时候在事务隔离级别这块老是卡,似懂非懂的。现在想把这块整理出来,尽量用最简洁的语言描述出来,供新人参考。 首先创建一个表account。创建表的过程略过(由于Inno…
MySQL 数据类型 – 后端 – 掘金
MySQL中定义数据字段的类型对你数据库的优化是非常重要的。 MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。 数值类型 MySQL支持所有标准SQL数值数据类型。 这些类型包括严格数值数据类型(INTEGER、SMALLI…
MySQL 如何在主从模式之间自由应变 – 后端 – 掘金
众所周知,MySQL支持主从模式,也就是使用一台MySQL服务器作为主服务器,再用一台或多台MySQL服务器充当从服务器,主、从服务器作为一个整体参与到应用之中。 【主从模式的三大优点】 ▲支持读写分离,降低数据库负荷。 通…
MySQL 大表优化方案 – 后端 – 掘金
当MySQL单表记录数过大时,增删改查性能都会急剧下降,可以参考以下步骤来优化: 单表优化 除非单表数据未来会一直不断上涨,否则不要一开始就考虑拆分,拆分会带来逻辑、部署、运维的各…
MySQL 闪回原理与实战 – 后端 – 掘金
DBA或开发人员,有时会误删或者误更新数据,如果是线上环境并且影响较大,就需要能快速回滚。传统恢复方法是利用备份重搭实例,再应用去除错误sql后的binlog来恢复数据。此法费时费力,甚至需要停机维护,并不适合快速回滚。也有团队利用LVM快照来缩短恢复时间,但…
MySQL 线程池内幕 – 后端 – 掘金
摘要 在MySQL中,线程池指的是用来管理处理MySQL客户端连接任务的线程的一种机制,我厂用的percona版本已经是集成了线程池,只需要通过如下参数开启即可。 thread_handling=pool-of-threads 本文在介绍MySQL线程池核心参…
(16)mysql 中的表锁定及事务控制 – 掘金
概述 MySQL支持三种锁级别:页级、表级、行级。MyISAM和MEMORY存储引擎采用的是表级锁(table-level locking);BDB存储引擎采用的是页面锁(page-level locking),但也支持表级锁;InnoDB存储引擎既支持行级锁…
MySql 优化 – 后端 – 掘金
原文链接:http://blog.csdn.net/qq_22329… SQL优化 通过show status命令了解各种sql的执行效率 查…
MySQL 如何存储大数据 – 后端 – 掘金
最近,在工作中遇到了MySQL中如何存储长度较长的字段类型问题,于是花了一周多的时间抽空学习了一下,并且记录下来。 MySQL大致的逻辑存储结构在这篇文章中有介绍,做为基本概念:InnoDB 逻辑存储结构 注:文中所指的大数据指的是长度较长的数据字段,包括v…