Mysql
文章平均质量分 87
从心所愿
既然选择了远方,就要风雨兼程,只为了给家人一个更好的生活!
展开
-
mysql分布式事务(XA)及php实现
最近看到mysql相关的分布式事务,就看了些相关的实现。 在此记录下: https://www.jianshu.com/p/3ecf11795293 https://blog.csdn.net/xwnxwn/article/details/38662787原创 2019-09-08 11:12:09 · 826 阅读 · 0 评论 -
总结mysql的三种外键约束方式
如果表A的主关键字是表B中的字段,则该字段称为表B的外键,表A称为主表,表B称为从表。外键是用来实现参照完整性的,不同的外键约束方式将可以使两张表紧密的结合起来,特别是修改或者删除的级联操作将使得日常的维护工作更加轻松。这里以MySQL为例,总结一下3种外键约束方式的区别和联系。 这里以用户表和用户组表为例,这是一个典型的多对一关系,多个用户对应于一个用户组。 首先创建用户组表转载 2017-08-07 12:25:54 · 362 阅读 · 0 评论 -
Mysql外键约束设置使用方法
如果表A的主关键字是表B中的字段,则该字段称为表B的外键,表A称为主表,表B称为从表。外键是用来实现参照完整性的,不同的外键约束方式将可以使两张表紧密的结合起来,特别是修改或者删除的级联操作将使得日常的维护工作更加轻松。外键主要用来保证数据的完整性和一致性两个表必须是InnoDB表,MyISAM表暂时不支持外键外键列必须建立了索引,MySQL 4.1.2以后的版本在建立外键时会自动创建索引,转载 2017-08-06 18:23:27 · 1013 阅读 · 0 评论 -
MySQL----int(M)讲解 (int(3)与int(11)的区别)
总结,int(M) zerofill,加上zerofill后M才表现出有点点效果,比如 int(3) zerofill,你插入到数据库里的是10,则实际插入为010,也就是在前面补充加了一个0.如果int(3)和int(10)不加zerofill,则它们没有什么区别.M不是用来限制int个数的.int(M)的最大值和最小值与undesigned有关,最下面那副图有说明.MySQL>转载 2017-08-06 17:08:46 · 381 阅读 · 0 评论 -
mysql(5.6)分区(四)分区和锁定
在MySQL 5.6.5及更早版本中,对于MyISAM执行DML或DDL语句时,实际执行表级锁的存储引擎 ,影响分区表的这种语句对整个表格施加了锁定; 也就是说,所有分区都被锁定,直到语句完成。MySQL 5.6.6实现分区锁定修剪,这在许多情况下消除了不必要的锁定。在MySQL 5.6.6及更高版本中,从分区MyISAM表读取或更新的大多数语句只会导致受影响的分区被锁定。例如,在MySQ转载 2017-08-13 13:25:20 · 2266 阅读 · 0 评论 -
mysql(5.6)分区(三)与功能有关的分区限制
本节讨论与分区表达式中使用的功能有关的MySQL分区中的限制。在分区表达式中只允许下表中显示的MySQL函数。ABS()CEILING()(见 CEILING()和FLOOR())DAY()DAYOFMONTH()DAYOFWEEK()DAYOFYEAR()DATEDIFF()EXTRA转载 2017-08-13 13:21:36 · 937 阅读 · 0 评论 -
mysql(5.6)分区(二)与存储引擎相关的分区限制
以下限制适用于使用具有用户定义的表分区的存储引擎。MERGE存储引擎。 用户定义的分区和MERGE 存储引擎不兼容。使用MERGE存储引擎的表 不能分区。分区表无法合并。联合存储引擎。 FEDERATED不支持 分区表; 不可能创建分区 FEDERATED表。CSV存储引擎。 CSV不支持 使用存储引擎的分区表; 不可能创建分区CSV表。InnoDB存储引擎。转载 2017-08-13 13:18:16 · 1047 阅读 · 0 评论 -
mysql(5.6)分区(一)分区键,主键和唯一键
本节讨论分区键与主键和唯一键的关系。管理此关系的规则可以表示如下:分区表的分区表达式中使用的所有列必须是表可能具有的每个唯一键的一部分。换句话说,表上的每个唯一键都必须使用表的分区表达式中的每一列。(这也包括表的主键,因为根据定义是一个唯一的键,这个特定的情况在本节稍后讨论。)例如,以下每个表创建语句都是无效的:CREATE TABLE t1 ( col1 INT NOT转载 2017-08-13 13:06:51 · 10515 阅读 · 0 评论 -
mysql的5.6版本支持分区吗?
转载请注明出处:http://blog.csdn.net/dongdong9223/article/details/72291698 本文出自【我是干勾鱼的博客】我们知道,查看MySQL是否支持分区需要使用命令:show variables like %partition%';11如果没有看到变量:have_partition_engine的值为YES,转载 2017-08-12 18:29:04 · 606 阅读 · 0 评论 -
Mysql CMAKE编译参数详解
以下是博主原先整理的一些mysql编译参数详解,提供给热衷于源码编译安装mysql的朋友们!-DCMAKE_INSTALL_PREFIX= 指向mysql安装目录-DINSTALL_SBINDIR=sbin 指向可执行文件目录(prefix/sbin)-DMYSQL_DATADIR=/var/lib/mysql 指向mysql数据文件目录(/var/lib/mysql)-DSYSC转载 2017-07-06 14:33:04 · 3806 阅读 · 1 评论 -
mysql-5.5源码编译安装(附参数对照表)
自5.5以后的版本都需要cmake编译安装,so...先安装cmake编译器[plain] view plain copy print?安装必要的组件 yum -y install cmake yum -y install bison yum -y install ncurses-devel 添加账户转载 2017-07-06 14:27:05 · 394 阅读 · 0 评论 -
mac下忘记root密码
今天一同事忘记mysql的root密码,找我解决,我只能找百度了。参考了如下链接:http://jingyan.baidu.com/article/90bc8fc87b04e3f653640c1c.html成功解决。意外发现:1.mac下进入管理员命令:sudo su2.mac下安装mysql服务有两种方式:第一种:到官网下载.dmg格式软件,按照向导安装。第二原创 2017-02-22 17:56:34 · 453 阅读 · 0 评论 -
为什么别名不能在group by中用?
因为SQL的执行顺序为:先where 再group 再having 再select 后order.sql语句解析的顺序的问题。先where条件过滤出需要的纪录,再对筛选出来的记录分组group加having。接下来就是选取字段的过滤select最后order排序。所以别名只有在select和order by内才可以只用。原创 2016-12-08 19:41:43 · 10608 阅读 · 1 评论 -
GROUP BY分组查询与SQL执行顺序
转自:http://blog.163.com/shexinyang@126/blog/static/1367393122013526113822666/在SQL中使用GROUP BY来对SELECT的结果进行数据分组,在具体使用GROUP BY之前需要知道一些重要的规定。GROUP BY子句可以包含任意数目的列。也就是说可以在组里再分组,为数据分组提供更细致的控制。如果在GROUP转载 2016-12-12 13:42:03 · 783 阅读 · 0 评论 -
MySql中having字句对组记录进行筛选使用说明
having的用法 having字句可以让我们筛选成组后的各种数据,where字句在聚合前先筛选记录,也就是说作用在group by和having字句前。而 having子句在聚合后对组记录进行筛选。SQL实例: 一、显示每个地区的总人口数和总面积 SELECT region, SUM(population), SUM(area) FROM bbc GROUP BY regio转载 2016-07-08 18:44:48 · 1273 阅读 · 0 评论 -
innodb数据库 OPTIMIZE TABLE 提示Table does not support optimize, doing recreate + analyze instead
Table does not support optimize, doing recreate + analyze instead提要:1.MySQL官方建议不要经常(每小时或每天)进行碎片整理,一般根据实际情况,只需要每周或者每月整理一次即可。2.OPTIMIZE TABLE只对MyISAM,BDB和InnoDB表起作用,尤其是MyISAM表的作用最为明显。此外,并不是所有表都需转载 2017-09-04 16:38:10 · 17181 阅读 · 0 评论 -
sql查询集锦(一)
1.求表中3月份薪水增加的用户id。userId month salary 1 2000 21 3000 31 4000 42 2000 2 2 2000原创 2017-08-28 22:04:28 · 387 阅读 · 0 评论 -
mysql有条件执行update操作时一点发现
mysql有条件执行update操作时一点发现发现背景解决思路具体实现遇到问题发现背景 最近在做一个卖品库存缺货时增加以时间维度的查询条件。但是之前并没有在扣减库存时候进行一个检查操作。解决思路 在扣减库存的sql语句中增加一个检查库存量,如果库存不够时将当前时间写入库存表中的缺货查询时间字段里,以供缺货时间查询。具体实现之前扣减库存的sql如下: update `storage...原创 2019-02-26 17:16:31 · 1747 阅读 · 0 评论 -
mysql数据库sum()函数查询结果为null的解决办法
最近网站后台页面有些查询不显示结果,通过sql客户端的验证,发现如下情况: sql语句:select sum(`money`) from table_t1 where status = 1; 经过测试,发现如果没有符合where条件的记录,sum()函数的结果会是 null。这也解释了为什么后台页面不显示结果的问题。 在网上搜索资料后,通过如下方...原创 2018-11-27 11:16:40 · 11511 阅读 · 0 评论 -
mysql拾遗
1. uuid()函数 https://blog.csdn.net/zhengqiqiqinqin/article/details/7851032/2. insert delayed语句 https://www.cnblogs.com/chenmh/archive/2016/04/05/5355517.html3. user()和current_user()...原创 2018-11-19 18:11:50 · 263 阅读 · 0 评论 -
mysql存储过程解决线上的一个问题
最近线上有个问题是要给拥有A权限的所有角色添加A权限下的一个子权限A1,因为需要查询A权限的所有角色,并批量添加子权限A1,所以简单的sql不能处理此问题,有两种方法:1. 写脚本解决 2. 用存储过程解决。 脚本相对简单些,在此不做记录,主要讲一下存储过程解决办法。 #### 拥有**权限的角色添加 **报表权限 DELIMI...原创 2018-10-22 11:14:43 · 329 阅读 · 0 评论 -
mysql使用federated引擎远程访问数据库
在实际工作中,我们可能会遇到需要操作其他数据库的部分表,但又不想系统连接多库。此时我们就需要用到数据表映射。Mysql自带的FEDERATED引擎完美的帮我们解决了该问题。 开启dederated引擎: 1.windows环境:my.ini文件[mysqld]中加入一行:federated 2...原创 2018-09-03 14:32:40 · 1497 阅读 · 0 评论 -
使用mysql federated引擎构建MySQL分布式数据库访问层
使用mysql federated 引擎构建 MySQL 分布式数据库访问层 前言:随着应用复杂度的增加,数据库不断细化切分,导致应用程序中数据库应用就得复杂,凌乱。绝大部分程序人员可能都遇到这种情况,应用程序中需要连接多台数据库服务器,进行相应的操作。随着时间积累,太多的数据库服务器的连接逻辑出现在程序之中,这给程序的维护扩展,数据库维护工作带来极大的工作量。 于是一些分布...转载 2018-09-03 14:19:21 · 331 阅读 · 0 评论 -
mysql对多条记录先判断加减再求和的解决办法
最近在做关于售、退的统计时,想要一条sql就解决问题,通过网上查找相关资料,得到以下几种方式:举个栗子:表数据如下[pay_type字段,1代表 售 2代表 退] id pay_type pay_value 1 1 20 2 1 ...原创 2018-08-02 17:53:46 · 4718 阅读 · 1 评论 -
解决mysqldump: Got error: 1044: Access denied for user
今天配合测试的同事测试数据更新时,总结遇到的问题和一些操作。https://www.cnblogs.com/wangkongming/p/3727457.html原创 2018-03-21 12:02:21 · 11724 阅读 · 0 评论 -
MySQL架构设计谈:从开发规范、选型、拆分到减压(转)
作者介绍李辉,原新浪爱彩票运维负责人,常用网名:门牙没了。曾主导新浪爱彩票的MySQL运维工作。培训合伙人、资深讲师,中国科学院大学在读研究生(大数据方向),擅长大型项目的关系型数据库运维和管理,现在在数据库运维自动化方向研究。 随着MySQL自身的发展与不断完善,不知不觉中整个互联网行业已离不开这个完善又小巧的关系型数据库,整个生态链也已经变得非常成熟,即便是初创企业和传转载 2018-03-20 09:50:08 · 253 阅读 · 0 评论 -
乐观并发控制与悲观并发控制的区别
悲观并发控制一个锁定系统,可以阻止用户以影响其他用户的方式修改数据。如果用户执行的操作导致应用了某个锁,只有这个锁的所有者释放该锁,其他用户才能执行与该锁冲突的操作。这种方法之所以称为悲观并发控制,是因为它主要用于数据争用激烈的环境中,以及发生并发冲突时用锁保护数据的成本低于回滚事务的成本的环境中。 乐观并发控制 在乐观并发控制中,用户读取数据时不锁定数据。当一个用户更新数据时,系统将转载 2018-03-18 07:53:22 · 6503 阅读 · 2 评论 -
MYSQL主从复制的几种方式
MySQL 主从复制主要有以下几种方式: 基于 SQL 语句的复制(statement-based replication, SBR); 基于行的复制(row-based replication, RBR);混合模式复制(mixed-based replication, MBR); 基于 SQL 语句的方式最古老的方式,也是目前默认的复制方式,后来的两种是 MySQL 5 以后才出现的转载 2018-03-03 08:03:52 · 8029 阅读 · 0 评论 -
MySQL无法重启报错Warning: World-writable config file ‘/etc/my.cnf’ is ignored的解决方法
最近在维护公司服务器的时候,在关闭数据库的命令发现mysql关不了了,提示错误为Warning: World-writable config file '/etc/my.cnf' is ignored,通过查找网上的资料终于解决了,现在将解决的方法分享给大家,同样遇到这个问题的朋友们可以参考借鉴。问题分析在关闭数据库的命令发现mysql关不了,提示Warning:转载 2017-12-17 12:27:16 · 16304 阅读 · 0 评论 -
mysql命令gruop by报错this is incompatible with sql_mode=only_full_group_by
在mysql 工具 搜索或者插入数据时报下面错误:ERROR 1055 (42000): Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'database_tl.emp.id' which is not functionally dependent on co转载 2017-10-15 13:13:52 · 369 阅读 · 0 评论 -
一次Mysql死锁排查过程的全纪录
在测试环境测试给用户并发发送卡券时,出现了死锁,通过查找相关的资料解决了这个,所以想着总结出来,所以下面这篇文章主要是关于一次Mysql死锁排查过程的全纪录,需要的朋友可以参考下,希望大家从中能有所帮助。前言之前接触到的数据库死锁,都是批量更新时加锁顺序不一致而导致的死锁,但是上周却遇到了一个很难理解的死锁。借着这个机会又重新学习了一下mysql的死锁知识以及常见的转载 2017-09-07 10:55:09 · 7551 阅读 · 1 评论 -
mysql group by 用法解析(详细)
group by 用法解析group by语法可以根据给定数据列的每个成员对查询结果进行分组统计,最终得到一个分组汇总表。SELECT子句中的列名必须为分组列或列函数。列函数对于GROUP BY子句定义的每个组各返回一个结果。某个员工信息表结构和数据如下: id name dept salary edlevel hiredate 1 张三 开发部 2000 3 2转载 2016-07-08 18:42:47 · 262 阅读 · 0 评论 -
从MySQL导出到PostgreSQL
摘要: 异构数据库的导入、导出是一个大难题。从MySQL到PG目前没有特别完善的工具,还需要人工的参与。本文将简单介绍下如何利用一些工具,手工将MySQL导出数据到PostgreSQL。 导出、转换、导入 数据导出、导入的思路是: 导出结构 导出数据 对结构进行转换 对数据进行转换 ...异构数据库的导入、导出是一个大难题。从MySQL到PG目前没有特别完善的工具,还需要人工的参与转载 2016-07-13 23:35:36 · 9420 阅读 · 0 评论 -
高性能Mysql主从架构的复制原理及配置详解
1 复制概述 Mysql内建的复制功能是构建大型,高性能应用程序的基础。将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机的数据复制到其它主机(slaves)上,并重新执行一遍来实现的。复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器。主服务器将更新写入二进制日志文件,并维护文件的一个索引以跟踪日志循环。这些日志可以记录发送到转载 2016-01-11 20:23:58 · 270 阅读 · 0 评论 -
mysql触发器的作用及语法
触发器是一种特殊的存储过程,它在插入,删除或修改特定表中的数据时触发执行,它比数据库本身标准的功能有更精细和更复杂的数据控制能力。数据库触发器有以下的作用:1.安全性。可以基于数据库的值使用户具有操作数据库的某种权利。 # 可以基于时间限制用户的操作,例如不允许下班后和节假日修改数据库数据。 # 可以基于数据库中的数据限制用户的操作,例如不允许股票的价格转载 2015-12-27 11:44:59 · 387 阅读 · 0 评论 -
mysql触发器实例收集
1.假设系统中有两个表:班级表 class(班级号 classID, 班内学生数 stuCount)学生表 student(学号 stuID, 所属班级号 classID)要创建触发器来使班级表中的班内学生数随着学生的添加自动更新,代码如下:DELIMITER $ //将结束符设置为‘$’create trigger tri_stuInsert after inser原创 2015-12-27 09:48:58 · 481 阅读 · 0 评论 -
MySQL触发器使用详解
本文主要详细介绍了mysql数据库的触发器的相关知识,非常的全面,有需要的小伙伴参考下吧。MySQL包含对触发器的支持。触发器是一种与表操作有关的数据库对象,当触发器所在表上出现指定事件时,将调用该对象,即表的操作事件触发表上的触发器的执行。创建触发器在MySQL中,创建触发器语法如下:复制代码 代码如下:CREATE TRIGGER trigger_namet转载 2015-12-25 18:58:07 · 316 阅读 · 0 评论 -
双击打开某张表的时候很慢的解决办法
原因是:当远程访问mysql时, mysql会解析域名, 所以会导致访问速度很慢,会有2,3秒延时!解决办法:修改mysql安装目录下的my.ini,加上下面这个配置可解决此问题。在[mysqld]下加入:skip-name-resolve保存退出后重启mysql服务。然后访问速度就和本地一样快啦。转载 2016-01-07 19:38:59 · 586 阅读 · 0 评论 -
如何让mysql数据库允许被远程连接访问?
详情是这样的:我的电脑上安装了mysql,我想让局域网内别的机子上的用户来访问我的数据库。我进入到mysql数据库,执行了下面的语句“GRANT ALL PRIVILEGES ON *.* TO 'xxx'@192.168.24.112' IDENTIFIED BY 'xxxxxx' WITH GRANT OPTION;”赋予此IP的用户xxx访问的权利,user表中也的确多了此用户xxx的记录。转载 2016-01-07 19:05:08 · 1477 阅读 · 0 评论 -
MYSQL中group_concat有长度限制!默认1024
在mysql中,有个函数叫“group_concat”,平常使用可能发现不了问题,在处理大数据的时候,会发现内容被截取了,其实MYSQL内部对这个是有设置的,默认不设置的长度是1024,如果我们需要更大,就需要手工去修改配置文件。详细说明如下:用了group_concat后,select里如果使用了limit是不起作用的.用group_concat连接字段的时候是有长度限制转载 2015-11-25 10:34:14 · 636 阅读 · 0 评论