mysql
文章平均质量分 90
写回
这个作者很懒,什么都没留下…
展开
-
Mysql新增字段到大数据表导致锁表
昨天晚上7点左右,对一张表进行加字段,大概200多万条记录,字段90多个的大表,结果造成mysql锁表,进而导致服务不可用。执行语句如下:[sql] view plain copyALTER TABLE `sc_stockout_order` ADD `route_remarks` VARCHAR(1024) CHARACTER SET utf8mb4 NULL DEFAULT ...转载 2018-06-15 17:14:47 · 18236 阅读 · 0 评论 -
基于极数云舟Arkgate跨云数据库异地双活实战
1业务背景 随着O2O消费深入人心,我们公司的业务也迅速发展,目前已经服务了全国大部分城市里面的近2000万个家庭,家庭服务已经成为解决社会劳动力的一个重要渠道,也是方便千家万户的一项利国利民的大好事。在不断发展的过程中,公司对业务服务质量,以及数据安全,数据库可用都非常重视,这是我们的核心资产。 我们大量使用了公有云服务,这也包括公有云上的数据库服务,最近由于公司全国性发展的...转载 2018-12-12 16:45:32 · 731 阅读 · 0 评论 -
mysql在线修改表结构大数据表的风险与解决办法归纳
整理这篇文章的缘由:互联网应用会频繁加功能,修改需求。那么表结构也会经常修改,加字段,加索引。在线直接在生产环境的表中修改表结构,对用户使用网站是有影响。以前我一直为这个问题头痛。当然那个时候不需要我来考虑,虽然我们没专门的dba,他们数据量比我们更大,那这种问题也会存在。所以我很想看看业界是怎么做的,我想寻找有没有更高级的方案,呵呵,让我觉得每次开发一个新功能,我在线加字段都比较纠结。后...转载 2018-12-03 23:10:56 · 557 阅读 · 0 评论 -
MySQL存储引擎中的MyISAM和InnoDB区别详解
在使用MySQL的过程中对MyISAM和InnoDB这两个概念存在了些疑问,到底两者引擎有何分别一直是存在我心中的疑问。为了解开这个谜题,搜寻了网络,找到了如下信息:MyISAM是MySQL的默认数据库引擎(5.5版之前),由早期的ISAM(Indexed Sequential Access Method:有索引的顺序访问方法)所改良。虽然性能极佳,但却有一个缺点:不支持事务处理(transa...转载 2018-12-13 17:08:42 · 117 阅读 · 0 评论 -
美团点评SQL优化工具SQLAdvisor开源
美团点评SQL优化工具SQLAdvisor开源 在数据库运维过程中,优化 SQL 是 DBA 团队的日常任务。例行 SQL 优化,不仅可以提升程序性能,还能够降低线上故障的概率。 目前常用的 SQL 优化方式包括但不限于:业务层优化、SQL逻辑优化、索引优化等。其中索引优化通常通过调整索引或新增索引从而达到 SQL 优化的目的。索引优化往往可以在短时间内产生非常巨大的效果。如果能够将索引优化转...转载 2018-12-14 11:28:50 · 199 阅读 · 0 评论 -
MySQL中的重做日志(redo log),回滚日志(undo log),以及二进制日志(binlog)的简单总结
MySQL中有六种日志文件,分别是:重做日志(redo log)、回滚日志(undo log)、二进制日志(binlog)、错误日志(errorlog)、慢查询日志(slow query log)、一般查询日志(general log),中继日志(relay log)。其中重做日志和回滚日志与事务操作息息相关,二进制日志也与事务操作有一定的关系,这三种日志,对理解MySQL中的事务操作有着重要...转载 2018-12-14 12:02:25 · 102 阅读 · 0 评论 -
MySQL数据库的几种常见高可用方案
随着人们对数据一致性的要求不断的提高,越来越多的方法被尝试用来解决分布式数据一致性的问题,如MySQL自身的优化、MySQL集群架构的优化、Paxos、Raft、2PC算法的引入等等,本文介绍MySQL数据库的几种常见高可用方案。 一、概述我们在考虑MySQL数据库的高可用的架构时,主要要考虑如下几方面:如果数据库发生了宕机或者意外中断等故障,能尽快恢复数据库的可用性,尽可能的减少...转载 2019-01-17 17:52:36 · 1098 阅读 · 0 评论 -
MySQL集群代理服务器:mysql-proxy -> mysql-router
MySQL集群代理服务器:mysql-proxy -> mysql-router参考链接:mysql-proxy:https://www.cnblogs.com/zhangyinhua/p/7565373.htmlmysql-router:https://blog.csdn.net/dbabruce/article/details/510350491.为什么不选择mysql-pro...转载 2019-01-17 17:53:33 · 1220 阅读 · 0 评论 -
对比比较MySql innodb 和 MyIsam 两种存储引擎的文件存储结构
今天对比一下mysql两种常用存储引擎myisam和innodb的文件存储结构: 先说一下两者的大概区别: myisam 更适合读取大于写入的业务,同时不支持事物。 innodb 支持事物,效率上比myisam稍慢。文件存储: myism物理文件结构为:.frm文件:与表相关的元数据信息都存放在frm文件,包括表结构的定义信息等。.myd文件:myisam存储引擎专用,...转载 2019-01-14 20:15:43 · 1381 阅读 · 0 评论 -
Mysql中key 、primary key 、unique key 与index区别
索引被用来快速找出在一个列上用一特定值的行。没有索引,MySQL不得不首先以第一条记录开始并然后读完整个表直到它找出相关的行。表越大,花费时间越多。如果表对于查询的列有一个索引,MySQL能快速到达一个位置去搜寻到数据文件的中间,没有必要考虑所有数据。如果一个表有1000行,这比顺序读取至少快100倍。注意你需要存取几乎所有1000行,它较快的顺序读取,因为此时我们避免磁盘寻道。 所有的...转载 2019-02-20 15:31:01 · 295 阅读 · 0 评论 -
MySql压力测试:分析innodb和myisam谁更有优势
本文使用平台Ubuntu7.使用mysqlslap,sysbench工具对mysql数据引擎做初步压力测试.1首先看看高手对于这两个引擎的认识1).MyISAM锁的粒度是表级,而InnoDB支持行级锁定。(注锁粒度更细)2).MyISAM支持全文类型索引,而InnoDB不支持全文索引。3).MyISAM相对简单,所以在效率上要优于InnoDB,小型应用可以考虑使用MyISAM。...转载 2019-03-12 00:16:32 · 207 阅读 · 0 评论 -
MySQL中tinytext、text、mediumtext和longtext详解
一、数字类型 类型 范围 说明 Char(N) [ binary] N=1~255 个字元 binary :分辨大小写 固定长度 std_name cahr(32) not null VarChar(N) [binary] N=1~255 个字元 binary :分辨大小写 可...转载 2019-03-27 10:47:28 · 196 阅读 · 0 评论 -
MYSQL强制使用索引和禁止使用索引
1、mysql强制使用索引:force index(索引名或者主键PRI)例如:select * from table force index(PRI) limit 2;(强制使用主键)select * from table force index(ziduan1_index) limit 2;(强制使用索引"ziduan1_index")select * from table f...转载 2018-11-30 09:45:33 · 437 阅读 · 2 评论 -
mysql 强制不排序
order by null order by null: 强制不排序 有的sql语句在执行完毕之后把结果给排序了,而我们对该结果没要求有排序效果, 这个排序是多余的,反而还消耗mysql的资源。为了使得获得数据的自然性、不要排序、降低mysql资源的开销,可以强制不排序。例如: 获得每个分类下商品的总数量: select c.cat_id,count(g.goods_id) f...转载 2018-11-30 09:43:02 · 983 阅读 · 0 评论 -
mysql: show processlist 详解
最近排查一些MySQL的问题,会经常用到 show processlist,所以在这里把这个命令总结一下,做个备忘,以备不时只需。show processlist 是显示用户正在运行的线程,需要注意的是,除了 root 用户能看到所有正在运行的线程外,其他用户都只能看到自己正在运行的线程,看不到其它用户正在运行的线程。除非单独个这个用户赋予了PROCESS 权限。root用户,可以看到...转载 2018-12-04 16:59:50 · 743 阅读 · 0 评论 -
更改(重置)MySQL用户密码的两种方法
方法一:(适用于管理员或者有全局权限的用户重设其它用户的密码)进入命令行模式mysql -u root -pmysql>use mysql;mysql> UPDATE user SET password=PASSWORD("new password") WHERE user='username';mysql> FLUSH PRIVILEGES;mysql> quit;方法二...转载 2018-07-02 11:43:37 · 5239 阅读 · 0 评论 -
mysql 客户端
centos7 安装MyCli MySQL 客户端 描述:MyCli 是一个 MySQL 命令行工具,支持自动补全和语法高亮。也可用于 MariaDB 和 Percona。发现了一个很方便的工具MyCliMyCli 是一个 MySQL 命令行工具,支持自动补全和语法高亮。也可用于 MariaDB 和 Percona。mycli 使用 prompt_toolkit 编写...原创 2018-08-01 17:36:53 · 259 阅读 · 0 评论 -
mysql8.0 项目部署
mysql8.0结果集横向显示&翻页pager less -SPAGER set to 'less -S'创建utf8 数据库CREATE DATABASE IF NOT EXISTS laravel DEFAULT CHARSET utf8 COLLATE utf8_general_ci; 创建本地用户CREATE USER 'laravel'@'lo...原创 2018-08-07 16:26:49 · 524 阅读 · 0 评论 -
left join on 后and 和 where 的区别
参考文献:https://www.cnblogs.com/caoyajun33-blog/p/6814185.htmlSELECT * FROM student a LEFT JOIN sc b ON a.Sid = b.Sid AND a.Sname="赵雷"结果:(left join 左连接,左表所有数据 拼接 右表符合on条件的数据。on后用and连接,‘a.Sid = b.Si...转载 2018-09-18 17:42:05 · 361 阅读 · 0 评论 -
SQL: group by以后如何count?
根据网上的资料和自己测试小结一下:1. 当表数据量很庞大, 需要使用sql的limit功能来分页时, 需要发送两条sql才能实现分页 SELECT * FROM tablename WHERE conditions LIMIT pagestart, pagesize 以及 SELECT COUNT(*) FROM tablename WHERE conditions ...转载 2018-09-27 16:17:59 · 15327 阅读 · 0 评论 -
php连接docker运行的mysql,显示(HY000/2002): Connection refused的解决办法
php要连接docker中运行的mysql是不能用localhost, 127.0.0.1来连接的,因为每个docker运行容器的localhost 127.0.0.1都是自己容器本身,不是mysql容器,需要修改成母机 IP,或者是mysql容器名称 比如有如下的docker-compose.yml version: '3'services: mysql:# b...转载 2018-10-10 11:24:50 · 11876 阅读 · 0 评论 -
redis 队列同步到mysql 方案
crontab 效率太低 有没有高效率的建议采用异步处理的方式只操作redis队列,同步用其他异步程序来实现用redis的队列,数据lpush进入,然后另外开个进程,while(true){brpop/rpop队列}下面用php做示例:a.php 文件里的代码$redis->Redis();$redis->connect($host, $port, $db);...转载 2018-10-29 20:59:22 · 1137 阅读 · 0 评论 -
Swoole WebSocket 实现mysql实时数据展示
最近在学习swoole,自己完成下论坛里留下的作业,通过swoole_websocket实时展示mysql数据,有个遗留问题,如何判断mysql是否有增删改,我想到的方法有:1、在应用层中有增删改时,发一个消息到消息队列来监听。2、解析mysql bin-log日志。3、触发器。现在的解决办法是利用触发器,例子中我只监听了一个表,当有多个表时,需要添加大量触发器,触发器本身占用很多资源,太...转载 2018-10-29 21:15:19 · 2386 阅读 · 0 评论 -
PHP使用SWOOLE扩展实现定时同步 MySQL 数据
南宁公司和几个分公司之间都使用了呼叫系统,然后现在需要做一个呼叫通话数据分析,由于分公司的呼叫服务器是在内网,通过技术手段映射出来,分公司到南宁之间的网络不稳定,所以需要把分公司的通话数据同步到南宁。本身最简单的方法就是直接配置MySQL的主从同步就可以同步数据到南宁来了。但是销售呼叫系统那边的公司不给MySQL权限我们。 所以这个方法只能放弃了。于是我们干脆的想,使用PHP来实现定时一个...转载 2018-10-29 21:18:44 · 907 阅读 · 0 评论 -
mysql 事物隔离级别
MySQL 四种事务隔离级的说明很早之前写的文章,重新回顾和学习下,也可以看这篇文章说明。按照SQL:1992 事务隔离级别,InnoDB默认是可重复读的(REPEATABLE READ)。MySQL/InnoDB 提供SQL标准所描述的所有四个事务隔离级别。你可以在命令行用--transaction-isolation选项,或在选项文件里,为所有连接设置默认隔离级别。例如,你可以在my...转载 2018-11-26 17:43:04 · 89 阅读 · 0 评论 -
MySql中表锁Lock命令和unlock命令
MySQL LOCK 命令的语法如下LOCK TABLE table1 locktype, table2 locktype ...对一个表解锁:UNLOCK TABLE[S]如:lock table car write;select * from car;unlock table;解锁命令不需要额外的参数,UNLOCK 将解除该用户所有的锁。因为 LOCK 锁阻...转载 2018-12-04 16:41:33 · 6567 阅读 · 0 评论 -
MySQL并发更新数据加锁处理
前阵子一个项目中涉及到了对MySQL数据的并发更新,对于同一个数据记录,使用了并发工具进行测试,结果数据被改乱了。原因是没有对MySQL的数据行进行加锁。而当时我使用的SQL语句类似如下:UPDATE table1 SET num = num + 1 WHERE id=1;天真的我以为只要是UPDATE关键字操作,MySQL就会自动给条件行加锁。很显然这条语句没有成功加锁,所以我放弃了MyS...转载 2018-12-04 16:50:30 · 1695 阅读 · 0 评论 -
mysql瑞士军刀–pt工具
Percona-ToolkitsPercona-toolkit 简介percona-toolkit是一组高级命令行工具的集合,用来执行各种通过手工执行非常复杂和麻烦的mysql任务和系统任务,这些任务包括:检查master和slave数据的一致性有效地对记录进行归档查找重复的索引对服务器信息进行汇总分析来自日志和tcpdump的查询当系统出问题的时候收集重要的系统信息...转载 2019-04-09 17:15:16 · 354 阅读 · 0 评论