MYSQL
文章平均质量分 87
大鹏的世界
天道酬勤!分布式+大数据架构解决方案
展开
-
mysql query_time单位_深入mysql慢查询设置的详解
在web开发中,我们经常会写出一些SQL语句,一条糟糕的SQL语句可能让你的整个程序都非常慢,超过10秒一般用户就会选择关闭网页,如何优化 SQL语句将那些运行时间 比较长的SQL语句找出呢?(4)如果日志文件不想放在data目录,我们可以通过如下配置指定存放的目录及日志文件名:slow_query_log_file=file_name其中file_name就是你的存放日志的目录和文件名,在这里注意有的资料上可能是log-slow-queries=file_name,这个在mysql5.5版已经过时!转载 2022-10-27 10:28:56 · 4140 阅读 · 0 评论 -
Mysql触发器字段双向更新
业务场景:不同的业务系统共用余额,hjmallind_user和ims_cjdc_user两个表不同的余额字段,但是共用余额值。触发器定义:DROP TRIGGER IF EXISTS `test-up_ds_wallet`;CREATE TRIGGER `test-up_ds_wallet` AFTER UPDATE ON `ims_cjdc_user` FOR EACH ROW BEGIN DECLARE ds_money decimal(10,2);...原创 2021-10-23 14:57:41 · 1378 阅读 · 0 评论 -
Mysql索引结构与索引原理及hash索引介绍
Mysql索引主要包括四种,Btree索引、Hash索引、full-text全文索引、R-tree索引,因为作为一名PHP开发者,并不是专业的DBA,在这里只需要了解第一种开发相关的BTree索引。索引的本质:MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据和排序的数据结构。数据库查询是数据库的主要功能之一,最基本的查询算法是顺序查找(linear search)时间复杂度为O(n),显然在数据量很大时效率很低。优化的查找算法如二分查找(binary search)、二叉原创 2021-02-22 14:15:35 · 365 阅读 · 0 评论 -
如何查询mysql中是否表被锁
可直接在mysql命令行执行:show engine innodb status\G;查看造成死锁的sql语句,分析索引情况,然后优化sql然后show processlist;show status like ‘%lock%’showOPENTABLESwhereIn_use>0;这个语句记录当前锁表状态另外可以打开慢查询日志,linux下打开需在my.cnf的[mysqld]里面加上以下内容:slow_query_log=TRUE(有些mysql版...转载 2021-02-20 15:00:40 · 2845 阅读 · 0 评论 -
mysql skip-name-resolve 的解释
mysql连接很慢,登陆到服务器上查看服务器日志都是正常的,无可疑记录,登陆到mysql服务器上,查看下进程,发现有很多这样的连接:218 | unauthenticated user | 192.168.10.6:44500 | NULL| Connect | NULL | login | NULL219 | unauthenticated user | 192.168.10.6:44501 | NULL| Connect | NULL | login | NULL........原因...原创 2020-12-24 17:05:56 · 13293 阅读 · 1 评论 -
mysql大规模数据检索优化
业务中遇到如下场景:每天有400W条左右的数据需要存储,随后使用的时候需要根据一批字段进行检索,且支持分类,其中包含普通字段的检索、模糊匹配、按时间范围检索, 需要支持三个月内的数据检索。1.存储和检索方案mysql单表数据量在过千万之后,读写性能会下降的比较厉害,而该业务场景下,每天产生的时候都有400W条左右,算下来一个月得有1.2亿条数据,三个月就是3.6亿条。我要说话说起来,这个量级的数据的检索,用mysql来做,本身是一件不科学的事情,应该采用Elasticsearch等比较专业的检原创 2020-11-20 10:12:41 · 791 阅读 · 0 评论 -
MySQL优化:如何避免回表查询?什么是索引覆盖
数据库表结构:createtableuser(idintprimarykey,namevarchar(20),sexvarchar(5),index(name))engine=innodb;selectid,namewherename='shenjian'selectid,name,sexwherename='shenjian'多查询了一个属性,为何检索过程完全不同? 什么是回表查询? 什么是...原创 2020-11-18 15:50:23 · 451 阅读 · 0 评论 -
mysql-schema-sync 数据库结构多库同步
mysql-schema-syncmysql表结构自动同步工具用于将线上数据库结构变化同步到本地环境!支持功能:同步新表 同步字段变动:新增、修改 同步索引变动:新增、修改 支持预览(只对比不同步变动) 邮件通知变动结果 支持屏蔽更新表、字段、索引、外键 支持本地比线上额外多一些表、字段、索引、外键安装go get -u github.com/hidu/mysql-schema-sync配置参考 默认配置文件 config.json 配置同步源、目的地址...原创 2020-11-11 11:18:09 · 525 阅读 · 0 评论 -
Mysql Too many connections 和 数据库堵塞问题排查处理
一、问题描述 今天突然接到个问题,Mysql内存占用90%多,后来发现有问题就查找到Max_used_connections到达顶峰二、处理方法1.查询连接情况,【定位堵塞的线程执行的SQL的time字段,time列:此这个状态持续的时间,单位是秒。】如果有SUPER权限,则可以看到全部的线程,否则,只能看到自己发起的线程(这是指,当前对应的MySQL帐户运行的线程)参数文献参考:mysql show processlist命令 详解root@localh...原创 2020-11-04 18:10:26 · 635 阅读 · 0 评论 -
mysql数据库binlog日志太大的清理方法[主从清理,待续]
mysql数据库binlog日志太大的清理方法1.查看binlog日志mysql> show binary logs;+------------------+------------+| Log_name | File_size |+------------------+------------+| mysql-bin.000061 | 50624 || mysql-bin.000062 | 5159 || mysql...转载 2020-10-31 09:44:12 · 1223 阅读 · 0 评论 -
MySQL慢查询分析工具pt-query-digest详解
一、简介pt-query-digest是用于分析mysql慢查询的一个工具,它可以分析binlog、General log、slowlog,也可以通过SHOWPROCESSLIST或者通过tcpdump抓取的MySQL协议数据来进行分析。可以把分析结果输出到文件中,分析过程是先对查询语句的条件进行参数化,然后对参数化以后的查询进行分组统计,统计出各查询的执行时间、次数、占比等,可以借助分析结果找出问题进行优化。二、安装pt-query-digest1.下载页面:https://www.perco转载 2020-10-28 08:57:17 · 3147 阅读 · 0 评论 -
MySQL主从不一致的几种故障总结分析、解决和预防
(1).主从不一致故障,从库宕机,从库启动后重复写入数据报错解决与预防:relay_log_info_repository=TABLE(InnoDB)参数解释说明:若relay_log_info_repository为FILE,当设置为0,交由OS刷新磁盘,受参数sync_relay_log_info的影响,默认为10000次刷新到磁盘;若relay_log_info_repository为TABLE,且为INNODB存储,则无论为任何值,则都每次event都会更新表。relay_log_in转载 2020-10-19 14:42:53 · 451 阅读 · 0 评论 -
mysql-slow.log-清理
mysql慢查询日志 作为运维人员,磁盘空间也是监控中重要的一个环节,数据库服务器磁盘空间不足告警,有时候不是因为业务数据量大,而是因为开启了慢查询,如果my.cnf文件中log-queries-not-using-indexes = 1,那么慢查询记录的日志中就不完全是慢查询日志,它包含了查询中没有引用索引的语句,久而久之慢查询日志文件会越来越大,如下为清理慢查询日志,以及关闭未走索引查询记录slow log。正确安全清空在线慢查询日志slowlog的流程查看慢查询日志状态 ...转载 2020-10-14 16:34:19 · 2079 阅读 · 0 评论 -
2020-08-12
案例所用的表结构、索引、与数据如下:索引失效与优化1、全值匹配我最爱2、最佳左前缀法则(带头索引不能死,中间索引不能断)如果索引了多个列,要遵守最佳左前缀法则。指的是查询从索引的最左前列开始 并且 不跳过索引中的列。正确的示例参考上图。错误的示例:带头索引死:中间索引断(带头索引生效,其他索引失效):3、不要在索引上做任何操作(计算、函数、自动/手动类型转换),不然会导致索引失效而转向全表扫描4、mysql存储引擎不能继续使用索引中范围条件(bettween原创 2020-08-12 16:49:15 · 135 阅读 · 0 评论 -
mysql的binlog详解
什么是binlogbinlog日志用于记录所有更新了数据或者已经潜在更新了数据(例如,没有匹配任何行的一个DELETE)的所有语句。语句以“事件”的形式保存,它描述数据更改。binlog作用因为有了数据更新的binlog,所以可以用于实时备份,与master/slave复制和binlog有关参数log_bin设置此参数表示启用binlog功能,并指定路径名称lo转载 2013-04-28 09:12:24 · 712 阅读 · 0 评论 -
MySQL server has gone away 问题的解决方法
应用程序(比如PHP)长时间的执行批量的MYSQL语句。执行一个SQL,但SQL语句过大或者语句中含有BLOB或者longblob字段。比如,图片数据的处理。都容易引起MySQL server has gone away。今天遇到类似的情景,MySQL只是冷冷的说:MySQL server has gone away。 大概浏览了一下,主要可能是因为以下几种原因: 一种原创 2012-07-10 09:50:13 · 959 阅读 · 0 评论 -
MySQL中使用like查找汉字的问题 乱码或者准确性不足问题
Select…like %…%来查找MySQL的text类型字段的一个中文,却发现查出来的是乱的,发现不少人也遇到这样的问题。在中文排序和查找的时候,汉字的结果是错误的。 原因在于MySQL在查找字符串的时候大小写不敏感,字符集默认使用ISO-8859,在转换过程中会出现问题。 有两种方法可以解决: 第一种方法是使用BINARY关键字。 BINARY 操作符将跟在它后转载 2012-10-26 09:27:28 · 4113 阅读 · 1 评论 -
关于MYSQL索引优化和in or替换为union all
mysql会对sql语句做优化, in 后面的条件不超过一定数量仍然会使用索引。mysql 会根据索引长度和in后面条件数量判断是否使用索引。另外,如果是in后面是子查询,则不会使用索引。一个文章库,里面有两个表:category和article。category里面有10条分类数据。article里面有 20万条。article里面有一个"article_ca原创 2011-08-11 14:46:42 · 10839 阅读 · 1 评论 -
Innodb锁机制
InnoDB锁问题InnoDB与MyISAM的最大不同有两点:一是支持事务(TRANSACTION);二是采用了行级锁。行级锁与表级锁本来就有许多不同之处,另外,事务的引入也带来了一些新问题。下面我们先介绍一点背景知识,然后详细讨论InnoDB的锁问题。背景知识1.事务(Transaction)及其ACID属性事务是由一组SQL语句组成的逻辑处理单元,事务具有以下4个属性,通常简称转载 2013-04-27 10:23:14 · 1078 阅读 · 0 评论 -
Innodb的表锁问题_auto_increment
innodb最为大家津津乐道的就是它实现了行锁等高级特性,相比之下,myisam的表锁显得有些弱智。不过很多人都忽视了一点,innodb在MySQL5.0里有时候的行为也是表锁:比如说当表里有一个auto_increment字段的时候,innodb会在内存里保存一个计数器用来记录auto_increment的值,当插入一个新行数据时,就会用一个表锁来锁住这个计数器,直到插入结束。如果一行一行的插入转载 2013-04-27 10:31:18 · 1749 阅读 · 0 评论 -
mysql互为主从复制配置笔记
MySQL-master1:192.168.72.128 MySQL-master2:192.168.72.129 OS版本:CentOS 5.4MySQL版本:5.5.9(主从复制的master和slave服务器中的mysql版本相同或者master版本高于slave版本) 一、MySQL master-master配置 1、修改MySQL配置文件 两转载 2012-05-24 10:10:40 · 1028 阅读 · 0 评论 -
MYSQL主从同步异常汇总
问题描述:程序上表现为对 主库 更新操作之后,从 从库 查询数据没发生改变。怀疑是主从库同步延迟导致。上从库查看主从同步状态,发现Seconds_Behind_Master时间长达一千多秒。正常情况下主从库延时个十几秒还可以容忍,一千多秒显然就有问题了么。。。 问题分析:我们在一个MYSQL实例上创建了四五个Database,其中一个Database数据量和压力都比较大,从 从库的转载 2012-06-13 08:55:47 · 1805 阅读 · 0 评论 -
MySQL锁表机制分析
为了给高并发情况下的mysql进行更好的优化,有必要了解一下mysql查询更新时的锁表机制。一、概述MySQL有三种锁的级别:页级、表级、行级。MyISAM和MEMORY存储引擎采用的是表级锁(table-level locking);BDB存储引擎采用的是页面锁(page-levellocking),但也支持表级锁;InnoDB存储引擎既支持行级锁(row-level locki转载 2012-06-13 08:57:13 · 725 阅读 · 0 评论 -
MYSQL复制的几种模式
MYSQL复制的几种模式MySQL 5.1 中,在复制方面的改进就是引进了新的复制技术:基于行的复制。MYSQL复制的几种模式MySQL 5.1 中,在复制方面的改进就是引进了新的复制技术:基于行的复制。简言之,这种新技术就是关注表中发生变化的记录,而非以前的照抄 binlog 模式。从 MySQL 5.1.12 开始,可以用以下三种模式来实现:-- 基于SQL语句的复制(转载 2012-05-21 09:28:31 · 5475 阅读 · 0 评论 -
DML、DDL、DCL区别
总体解释:DML(data manipulation language): 它们是SELECT、UPDATE、INSERT、DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的语言DDL(data definition language): DDL比DML要多,主要的命令有CREATE、ALTER、DROP等,DDL主要是用在定义或改变转载 2012-05-21 14:07:59 · 658 阅读 · 0 评论 -
对mysqlbinlog日志进行操作的总结包括 启用,过期自动删除 等
操作命令:show binlog events in 'binlog.000016' limit 10;reset master 删除所有的二进制日志flush logs 产生一个新的binlog日志文件show master logs; / show binary logs; 查看二进制文件列表和文件大小./mysqlbinlog --start-datetime="2转载 2012-05-19 17:21:04 · 4642 阅读 · 2 评论 -
MySQL集群的可行方案
如果单MySQL的优化始终还是顶不住压力时,这个时候我们就必须考虑MySQL的高可用架构(很多同学也爱说成是MySQL集群)了,目前可行的方案有:一、MySQL Cluster优势:可用性非常高,性能非常好。每份数据至少可在不同主机存一份拷贝,且冗余数据拷贝实时同步。但它的维护非常复杂,存在部分Bug,目前还不适合比较核心的线上系统,所以这个我不推荐。二、DRBD磁盘网络镜像方转载 2012-05-21 13:48:56 · 2638 阅读 · 0 评论 -
MySQL Error Code文档手册---摘自MySQL官方网站
转1005:创建表失败1006:创建数据库失败1007:数据库已存在,创建数据库失败1008:数据库不存在,删除数据库失败1009:不能删除数据库文件导致删除数据库失败1010:不能删除数据目录导致删除数据库失败1011:删除数据库文件失败1012:不能读取系统表中的记录1020:记录已被其他用户修改1021:硬盘剩余空间不足转载 2012-05-31 23:26:36 · 3383 阅读 · 0 评论 -
MySQL主从服务器的一些技巧
问题:主从服务器表类型的选择一般的共识是主服务器使用innodb,事务,行锁等功能是myisam所没有的,对修改操作而言,它更高效;从服务器使用myisam,全文检索功能是innodb所没有的,对查询操作而言,它更高效。这样就可以各尽其能。问题:主从服务器字段类型的选择字段类型对于分页等操作有很大影响。主服务器一般是innodb,因为不涉及查询,所以可以使用varchar等转载 2012-05-14 17:45:56 · 604 阅读 · 0 评论 -
MySQL多主同步 负载均衡
http://blog.sina.com.cn/s/blog_56115979010144dy.html解决多台写服务器主自增长ID重复问题[主主同步]二台Mysql服务器,他们的IP地址分别为:A:192.168.0.97B:192.168.0.98数据库都是 test_3306首先我给两台服务器的my.ini 贴出来A:my.iniserver-id=2转载 2012-05-14 16:37:05 · 836 阅读 · 0 评论 -
Mysql 性能优化教程
Mysql 性能优化教程目录目录................................................................................................................................. 1背景及目标..........................................转载 2011-08-13 18:55:29 · 2585 阅读 · 0 评论 -
数据库表设计 基本思路
好的数据结构会影响速度。好的数据库表设计会影响数据库操作效率。特别是数据多的时候,如果表的结构不好的话操作的时候条件(where后的内容)会变的非常复杂。SQL是关系数据库中用到的一种语言。所以,为了简化SQL,表的关系(内部和外部)要尽量设计的合理。下面有几个可以参照的步骤:1)找出那个表要描述的东西;2)列出你想通过这个表得到的相关信息的列表;3)通过上面的信息列表,将信息转载 2014-01-27 15:13:50 · 6268 阅读 · 2 评论 -
MySQL的维护语句
Analyze TableMySQL的Optimizer(优化元件)在优化SQL语句时,首先需要收集一些相关信息,其中就包括表的cardinality(可以翻译为“散列程度”),它表示某个索引对应的列包含多少个不同的值——如果cardinality大大少于数据的实际散列程度,那么索引就基本失效了。我们可以使用SHOW INDEX语句来查看索引的散列程度:SHOW INDEX FROM PLAYERS;TABLE KEY_NAME COLUMN_NAME CARDINALITY——- ——–原创 2011-05-30 10:05:00 · 684 阅读 · 0 评论 -
使用 PowerDesigner 和 PDMReader 逆向生成 MySQL 数据字典
下面提到的软件大家可以在下面的链接下载。大家可以参考下面的操作录制视频来完成相关的操作。使用 PowerDesigner 和 PDMReader 逆向生成 MySQL 数据字典.wmv_免费高速下载|百度云 网盘-分享无限制http://pan.baidu.com/s/1bnvrObd数据库反向生成数据字典的工具_免费高速下载|百度云 网盘-分享无限制http://转载 2015-12-25 14:24:47 · 5823 阅读 · 0 评论 -
PDO防注入原理分析以及使用PDO的注意事项
我们都知道,只要合理正确使用PDO,可以基本上防止SQL注入的产生,本文主要回答以下两个问题:为什么要使用PDO而不是mysql_connect?为何PDO能防注入?使用PDO防注入的时候应该特别注意什么? 一、为何要优先使用PDO?PHP手册上说得很清楚:Prepared statements and stored procedures转载 2016-01-05 15:44:18 · 634 阅读 · 0 评论 -
mysql show processlist命令 详解
SHOW PROCESSLIST显示哪些线程正在运行。您也可以使用mysqladmin processlist语句得到此信息。如果您有SUPER权限,您可以看到所有线程。否则,您只能看到您自己的线程(也就是,与您正在使用的MySQL账户相关的线程)。请参见13.5.5.3节,“KILL语法”。如果您不使用FULL关键词,则只显示每个查询的前100个字符。本语句报告TCP/IP连接的主机名称转载 2014-11-21 09:27:57 · 4622 阅读 · 0 评论 -
centos6.5 MariaDB-5.5.42源码编译安装
MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可。开发这个分支的原因之一是:Oracle公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险。MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。在存储引擎方面,使用XtraDB来代替MySQL的InnoDB。转载 2015-03-27 10:10:23 · 554 阅读 · 0 评论 -
三范式数据库设计和反范式的思考(转)
当我们拿到一个新的需求,我们把需求从头到尾搞清楚 后,就开始画流程图—>用例图—->设计数据库—->进入开发阶段—->编码—->测试—–>项目上线,至此一个项 目就算完成。在这里我们只对设计数据库的这一块的范例进行讨论。提到范例,大家都知道第一范式,第二范式,第三范式。可是我们明白这些范式的深层含意吗?这些范式什么时候用,用它们有什么好处呢?下面我们就一起带着这些问题边想边读下面的文章。转载 2014-12-11 11:42:44 · 3683 阅读 · 0 评论 -
从MySQL到MongoDB简易对照表
查询: MySQL: SELECT * FROM user Mongo: db.user.find() MySQL: SELECT * FROM user WHERE name = ’starlee’ Mongo: db.user.find({‘name’ : ’starlee’}) 插入: MySQL: INSERT INOT user (`n转载 2013-04-26 16:10:25 · 1053 阅读 · 0 评论 -
MySQL之外键约束
一、基本概念1、MySQL中“键”和“索引”的定义相同,所以外键和主键一样也是索引的一种。不同的是MySQL会自动为所有表的主键进行索引,但是外键字段必须由用户进行明确的索引。用于外键关系的字段必须在所有的参照表中进行明确地索引,InnoDB不能自动地创建索引。2、外键可以是一对一的,一个表的记录只能与另一个表的一条记录连接,或者是一对多的,一个表的记录与另一个表的多条记录连接。转载 2014-12-11 16:16:52 · 1112 阅读 · 0 评论