201906-04 MySQL 到底是怎么解决幻读的? HOT 一、什么是幻读在一次事务里面,多次查询之后,结果集的个数不一致的情况叫做幻读。而多出来或者少的哪一行被叫做幻行。二、为什么要解决幻读在高并发数据库系统中,需要保证事务与事务之间的隔离性,还有事务本身的一致性。三、MySQL是如何解决幻读的如果你看到了这篇文章,那么我会默认你了解了脏读、不可重复读与可重复读。1.多版本并发控制(MVCC)(快照读/一致性读)多数数据库都实现了多版本并... 继续阅读 >
201906-01 整理了Git遇到错误时如何解决的一些坑 HOT 在工作中,你总是与代码打交道,上传代码的时候,相信你不是用svn,就是用Git版本控制器,下面是最近这几天整理下来经常会遇到的Git的一些错误的解决访问,希望能帮助到你。 继续阅读 >
201905-31 面试中,经常考到的MySQL题 HOT 1. 如何设计一个高并发的系统 ① 数据库的优化,包括合理的事务隔离级别、SQL语句优化、索引的优化 ② 使用缓存,尽量减少数据库 IO ③ 分布式数据库、分布式缓存 ④ 服务器的负载均衡 继续阅读 >
201905-31 基础:永远不要在 MySQL 中使用“utf8” HOT 最近我遇到了一个 bug,我试着通过 Rails 在以“utf8”编码的 MariaDB 中保存一个 UTF-8 字符串,然后出现了一个离奇的错误: 我用的是 UTF-8 编码的客户端,服务器也是 UTF-8 编码的,数据库也是,就连要保存的这个字符串“ <…”也是合法的 UTF-8。 问题的症结在于,MySQL 的“utf8”实际上不是真正的 UTF-8。 继续阅读 >
201905-31 主从配置,读写分离是MySQL性能优化重点 HOT 有些大型网站为了软解大量的并发访问,除了在网站实现分布式负载均衡,远远不够。到了数据业务层、数据访问层,如果还是传统的数据结构,或者只是单单靠一台服务器扛,如此多的数据库连接操作,数据库必然会崩溃,数据丢失的话,后果更是不堪设想。 继续阅读 >
201905-23 MySQL百万级数据量分页查询方法及其优化 HOT 方法1: 直接使用数据库提供的SQL语句 语句样式: MySQL中,可用如下方法: SELECT * FROM 表名称 LIMIT M,N 适应场景: 适用于数据量较少的情况(元组百/千级) 原因/缺点: 全表扫描,速度会很慢 且 有的数据库结果集返回不稳定(如某次返回1,2,3,另外的一次返回2,1,3). Limit限制的是从结果集的M位置处取出N条输出,其余抛弃. 继续阅读 >
201901-21 MySQL锁机制&&PHP锁机制,应用在哪些场景中? 模拟准备--如何模拟高并发访问一个脚本:apache安装文件的bin/ab.exe可以模拟并发量 -c模拟多少并发量 -n一共请求多少次http://请求的脚本例如:cmd: apache安装路径/bin/ab.exe -c 10 -n 10 http://web.test.com/test.phpMYSQL中的锁:语法:LOCKTABLE表名1READ|WRITE,表名2READ|WRITE..................【锁表】UNLOCKTABLES 【释放表】... 继续阅读 >
201712-06 项目中常用的19条MySQL优化 声明一下:下面的优化方案都是基于“Mysql-索引-BTree类型”的一、EXPLAIN做MySQL优化,我们要善用EXPLAIN查看SQL执行计划。下面来个简单的示例,标注(1,2,3,4,5)我们要重点关注的数据type列,连接类型。一个好的sql语句至少要达到range级别。杜绝出现all级别key列,使用到的索引名。如果没有选择索引,值是NULL。可以采取强制索引方式key_len列,索引长度rows列,扫描行数。该值是个预估值ex... 继续阅读 >
201711-25 MySQL · 最佳实践 · SQL Server三种常见备份 已认证的机构 摘要本期月报是SQLServer数据库备份技术系列文章的开篇,介绍三种常见的SQLServer备份方法的工作方式、使用T-SQL语句和使用SSMSIDE创建备份集三个层面,介绍SQLServer的三种常见备份的工作原理和使用方法。三种常见的备份包括:数据库完全备份(FullBackup)数据库日志备份(TransactionLogBackup)数据库差异备份(DifferentialBackup)备份的重要性在开始分享之前,我们首先来看看数据... 继续阅读 >
201708-22 拆解 MySQL 的高阶使用与概念 前面我们主要分享了MySQL中的常见知识与使用。这里我们主要分享一下MySQL中的高阶使用,主要包括:函数、存储过程和存储引擎。对于MySQL中的基础知识,可以参见《与MySQL的零距离接触》1函数函数可以返回任意类型的值,也可以接收这些类型的参数。字符函数函数名称描述CONCAT()字符连接CONCAT_WS()使用指... 继续阅读 >
201708-22 用 Node + MySQL 处理 100G 数据 通过这个Node.js和MySQL示例项目,我们将看看如何有效地处理数十亿行占用数百GB存储空间的数据。本文的第二个目标是帮助你确定Node.js+MySQL是否适合你的需求,并为实现此类解决方案提供帮助。本文章使用的实际代码可以在GitHub上找到。为什么使用Node.js和MySQL?我们使用MySQL来存储我们的Node.js监控和调试工具用户的分布式跟踪数据Trace。我们选择了MySQL,因为在决定的时候... 继续阅读 >
201708-01 10个提升MySQL性能的小技巧 从工作量分析到索引的三条规则,这些专家见解肯定会让您的MySQL服务器尖叫。在所有的关系数据库中,MySQL已经被证明了完全是一头野兽,只要通知停止运行就绝对不会让你多等一秒钟,使你的应用置于困境之中,你的工作也承受极大的风险。不过事实是,普通的错误都在MySQL性能错误的射程之内。所以为了使你的MySQL服务器能够高速运转,提供稳定且持续的服务,消除这些错误是非常有必要的,但是这可能常常会被你的繁忙... 继续阅读 >
201703-23 MySQL与PostgreSQL相比哪个更好? 网上已经有很多拿PostgreSQL与MySQL比较的文章了,这篇文章只是对一些重要的信息进行下梳理。在开始分析前,先来看下这两张图:MySQLMySQL声称自己是最流行的开源数据库。LAMP中的M指的就是MySQL。构建在LAMP上的应用都会使用MySQL,如WordPress、Drupal等大多数php开源程序。MySQL最初是由MySQLAB开发的,然后在2008年以10亿美金的价格卖给了Sun公司,Sun公司又在2010年被Oracle收购。Oracle支持MySQL的多个... 继续阅读 >
201612-13 Mysql 常用 SQL 语句大全 基础篇//查询时间,友好提示$sql="selectdate_format(create_time,'%Y-%m-%d')asdayfromtable_name";//int时间戳类型$sql="selectfrom_unixtime(create_time,'%Y-%m-%d')asdayfromtable_name";//一个sql返回多个总数$sql="selectcount(*)all,";$sql.="count(casewhenstatus=1thenstatusend)status_1_num,";$sql.="count(casewhenstatus=2thenstatusend)status_2_num";$sql... 继续阅读 >
201611-30 MySQL 的 20+ 条最佳实践 数据库操作是当今Web应用程序中的主要瓶颈。不仅是DBA(数据库管理员)需要为各种性能问题操心,程序员为做出准确的结构化表,优化查询性能和编写更优代码,也要费尽心思。在本文中,我列出了一些针对程序员的MySQL优化技术。在我们开始学习之前,我补充一点:你可以在EnvatoMarket上找到大量的MySQL脚本和实用程序。1.优化查询的查询缓存大部分MySQL服务器都有查询缓存功能。这是提高性能的最有效... 继续阅读 >
201611-08 MySQL简单主从方案暴露问题 1、概述从本篇文章开始我们将向读者介绍mysql的各种服务集群的搭建方式。大致的讨论思路是从最简的MySQL主从方案开始介绍,通过这种方案的不足延伸出更复杂的集群方案,并介绍后者是如何针对这些不足进行改进的。2、MySQL最简单主从方案及工作原理我们讲解的版本还是依据目前在生产环境上使用最多的version5.6进行,其中一些特性在Version5.7和最新的Version8.0中有所改进,但这不影响读者通过文章去理解构建MySQL集群的技... 继续阅读 >
201611-03 MySQL性能调优 对于全栈而言,数据库技能不可或缺,关系型数据库或者nosql,内存型数据库或者偏磁盘存储的数据库,对象存储的数据库或者图数据库……林林总总,但是第一必备技能还应该是MySQL。从LAMP的兴起,到Mariadb的出现,甚至PG的到来,熟练的MySQL技能都是大有用武之地的。MySQL数据库技术的方方面面也是很多,这里只涉及必备的性能调优,推崇从下向上的性能调优,主要包括运行环境,配置参数,SQL性能,和系统架构设计调优。运行环境调... 继续阅读 >
201610-20 详解MySQL数据库优化 HOT 一个成熟的数据库架构并不是一开始设计就具备高可用、高伸缩等特性的,它是随着用户量的增加,基础架构才逐渐完善。这篇博文主要谈MySQL数据库发展周期中所面临的问题及优化方案,暂且抛开前端应用不说,大致分为以下五个阶段: 1、数据库表设计项目立项后,开发部根据产品部需求开发项目,开发工程师工作其中一部分就是对表结构设计。对于数据库来说,这点很重要,如果设计不当,会直接影响访问速度和用户体验。影响的因... 继续阅读 >
201609-29 对mysql语句的性能分析与优化 1.使用explain,查看查询计划2.使用showprocesslist查看查询过程(处于哪个状态),完整命令如下mysql-uroot-p-e‘showprocesslist\G’|grepstate:|sort|uniq-c|sort-rn此种方法和方法3类似,应该说方法3更好用。3.使用showprofile。默认是禁止的,需要使用setprofiling=1开启。执行一些查询后,键入showprofiles可以看到前面执行语句的查询时间以很高的精度显示了出来。然后使用showprofileforqueryn... 继续阅读 >
201609-26 MySQL 语句大全:创建、授权、查询、修改 一、用户创建、权限、删除1、连接MySql操作连接:mysql-h主机地址-u用户名-p用户密码(注:u与root可以不用加空格,其它也一样)断开:exit(回车)打开cmd,输入mysql-h127.0.0.1-uroot-p然后输入密码。就可以连接到本地的MySql数据库了。2、创建用户:命令:CREATEUSER'username'@'host'IDENTIFIEDBY'password';说明:username-你将创建的用户名,host-指定该用户在哪个主机上可以登陆,如果是... 继续阅读 >
201609-07 MySQL配置文件my.cnf优化详解 MySQL5.5.13参数说明:[client]character-set-server=utf8port =3306socket =/data/mysql/3306/mysql.sock[mysqld]character-set-server=utf8user =mysqlport =3306socket =/data/mysql/3306/mysql.sockbasedir=/usr/local/webserver/mysqldatadir=/data/mysql/3306/datalog-error=/data/mysql/3306/mysql_error.log... 继续阅读 >
201609-07 MySQL两千万数据优化&迁移 HOT 最近有一张2000W条记录的数据表需要优化和迁移。2000W数据对于MySQL来说很尴尬,因为合理的创建索引速度还是挺快的,再怎么优化速度也得不到多大提升。不过这些数据有大量的冗余字段和错误信息,极不方便做统计和分析。所以我需要创建一张新表,把旧表中的数据一条一条取出来优化后放回新表;一.清除冗余数据,优化字段结构2000W数据中,能作为查询条件的字段我们是预知的。所以将这部分数据单独创建新的字段,对于有规则的数... 继续阅读 >
201608-25 MySQL 性能、监控与灾难恢复 监控方案: up.time http://www.uptimesoftware.com/ 收费 Cacti http://www.cacti.net/ KDESystemGuard(KSysGuard) http://docs.kde.org/stable/en/kdebase-workspace/ksysguard/index.html GnomeSystemMonitor ... 继续阅读 >