202205-17 MySQL去除重叠时间求时间差和的实现 目录需求: 开车:思路:实现: 我个人并不推荐在实际开发中使用存储过程,充满了各种的不方便,之所以写这东西,全在于学习,如果有高手看到我的内容有问题,可以随时指出或向我开炮。 需求: 在生产中常常出现计算两个时间差的业务,比如总宕机时间、总开通会员时间等等。。。但是... 继续阅读 >
202205-15 MySQL的全局锁和表级锁的具体使用 目录前言全局锁表级锁表锁元数据锁(MetadataLocking,简称:MDL锁)总结参考资料前言在真实的企业开发环境中使用MySQL,MySQL肯定不会只有我一个人使用,而是一个团队显式的使用MySQL,或者是业务隐式的使用MySQL,那么多个用户或者客户端连接使用的时候,我们应该考虑一个问题:如果保证数据并发访问的一致性呢?这一篇我就来聊聊MySQL的锁,不涉及MySQL的事务隔离级别。全局锁MySQL的全局锁会关闭所有打开的表,并使全部的表处... 继续阅读 >
202205-15 MySQL令人大跌眼镜的隐式转换 目录MySQL的隐式转换一、问题描述二、源码解释三、结论MySQL的隐式转换一、问题描述showcreatetablet1\G***************************1.row***************************Table:t1CreateTable:CREATETABLE`t1`(`id`varchar(255)DEFAULTNULL)ENGINE=InnoDBDEFAULTCHARSET=utf81rowinset(0.00sec)select*fromt1;+--------------------+|id|+--------------------+|20402702611... 继续阅读 >
202205-07 MySQL非空约束(not null)案例讲解 目录在创建表时设置非空约束在修改表时添加非空约束删除非空约束MySQL非空约束(NOTNULL)指字段的值不能为空。对于使用了非空约束的字段,如果用户在添加数据时没有指定值,数据库系统就会报错。可以通过CREATETABLE或ALTERTABLE语句实现。在表中某个列的定义后加上关键字NOTNULL作为限定词,来约束该列的取值不能为空。比如,在用户信息表中,如果不添加用户名,那么这条用户信息就是无效的,这时就可以为用户名字段... 继续阅读 >
202205-07 MySQL外键约束(FOREIGN KEY)案例讲解 MySQL外键约束(FOREIGNKEY)是表的一个特殊字段,经常与主键约束一起使用。对于两个具有关联关系的表而言,相关联字段中主键所在的表就是主表(父表),外键所在的表就是从表(子表)。外键用来建立主表与从表的关联关系,为两个表的数据建立连接,约束两个表中数据的一致性和完整性。比如,一个水果摊,只有苹果、桃子、李子、西瓜等4种水果,那么,你来到水果摊要买水果就只能选择苹果、桃子、李子和西瓜,其它的水果都是不... 继续阅读 >
202205-03 MySQL 1130异常,无法远程登录解决方案详解 目录问题:一、开启远程登录权限:二、刷新MySQL权限:三、测试:问题:mysql:1130isnotallowedtoconnecttothisMariaDBserver(没有远程登录权限,注:这里的MariaDB是MySQL的延伸版)一、开启远程登录权限:将localhost用户数据复制一份,并将localhost更名为%(即,所有的链接都可以登录服务器),修改成服务器对应IP地址亦可,步骤如图:二、刷新MySQL权限:具体sql如下:mysql>usemysql;mysql>flushprivileges;... 继续阅读 >
202204-30 基于JavaSwing+mysql开发一个学生社团管理系统设计和实现 前言:项目是使用Javaswing+mysql开发,可实现基础数据维护、用户登录注册、社团信息列表查看、社团信息添加、社团信息修改、社团信息删除以及退出注销等功能、界面设计比较简单易学、适合作为Java课设设计以及学习技术使用。引言随着全球信息化的迅猛发展,高效规模不断壮大,协会人数急剧增加,有必要开发一个学生社团管理系统来提高社联对社团的管理效率,学生社团管理系统将逐渐取代传统的人工管理模式。本文采用Java+swing+my... 继续阅读 >
202204-30 MySQL/MariaDB中如何支持全部的Unicode 目录utf8mb4介绍utf8字节数超出的报错utf8mb4支持将默认字符编码设置为utf8mb4,及对应排序规则。查看当前编码修改MySQL/Mariadb的配置文件,将utf8编码改为utf8mb4重启MySQL/MariaDB再次查看字符集和排序规则character_set_filesystem和character_set_system的说明关于字符集设置的其他参考现有数据库切换字符集到utf8mb4的完整过程参考永远不要在MySQL中使用utf8,并且始终使用utf8mb4。utf8mb4介绍MySQL/MariaDB中,utf8字... 继续阅读 >
202204-16 MySql分页时使用limit+order by会出现数据重复问题解决 目录摘要问题描述分析问题解决问题摘要能把复杂的知识讲的简单很重要在学习的过程中我们看过很多资料、视频、文档等,因为现在资料视频都较多所以往往一个知识点会有多种多样的视频形式讲解。除了推广营销以外,确实有很多人的视频讲解非常优秀,例如李永乐老师的短视频课,可以在一个黑板上把那么复杂的知识,讲解的那么容易理解,那么透彻。而我们学习编程的人也是,不只是要学会把知识点讲明白,也要写明白。问题描述在MySQL... 继续阅读 >
202204-06 mysql IS NULL使用索引案例讲解 简介mysql的sql查询语句中使用isnull、isnotnull、!=对索引并没有任何影响,并不会因为where条件中使用了isnull、isnotnull、!=这些判断条件导致索引失效而全表扫描。mysql官方文档也已经明确说明isnull并不会影响索引的使用。MySQLcanperformthesameoptimizationoncol_nameISNULLthatitcanuseforcol_name=constant_value.Forexample,MySQLcanuseindexesandrangestosearchforNULLwithISNUL... 继续阅读 >
202203-09 浅谈MySQL数据查询太多会OOM吗 目录全表扫描对server层的影响全表扫描对InnoDB的影响InnoDB内存管理小结我的主机内存只有100G,现在要全表扫描一个200G大表,会不会把DB主机的内存用光?逻辑备份时,可不就是做整库扫描吗?若这样就会把内存吃光,逻辑备份不是早就挂了?所以大表全表扫描,看起来应该没问题。这是为啥呢?全表扫描对server层的影响假设,我们现在要对一个200G的InnoDB表db1.t,执行一个全表扫描。当然,你要把扫描结果保存在客户端,会使用类似... 继续阅读 >
202202-26 MySQL DEFINER具体使用详解 目录前言:1.DEFINER简单介绍2.一些注意事项总结:前言:在MySQL数据库中,在创建视图及函数的时候,你有注意过definer选项吗?在迁移视图或函数后是否有过报错情况,这些其实都可能和definer有关系。本篇文章主要介绍下MySQL中definer的含义及作用。1.DEFINER简单介绍以视图为例,我们来看下官方给出的视图创建基础语法:CREATE[ORREPLACE][ALGORITHM={UNDEFINED|MERGE|TEMPTABLE}][DEFINER=user]... 继续阅读 >
202202-11 django生产环境搭建(uWSGI+django+nginx+python+MySQL) 目录1、系统环境,必要知识2、安装python3.6.53、安装Django4、安装uWSGI5、安装nginx6、MySQL安装配置7、编写一个简单的博客系统1、系统环境,必要知识#cat/etc/redhat-releaseCentOSLinuxrelease7.5.1804(Core)#uname-r3.10.0-862.3.2.el7.x86_64暂时关闭防护墙,关闭selinux:#systemctlstopfirewalld.service#setenforce0#getenforcePermissive准备知识:django:一个基于python的开源web框架。uWSGI:一个基于自... 继续阅读 >
202202-10 MySQL为何不建议使用默认值为null列 通常能听到的答案是使用了NULL值的列将会使索引失效,但是如果实际测试过一下,你就知道ISNULL会使用索引.所以上述说法有漏洞.着急的人拉到最下边看结论PrefaceNullisaspecialconstraintofcolumns.Thecolumnsintablewillbeaddednullconstrainifyoudonotdefinethecolumnwith“notnull”keywordsexplicitlywhencreatingthetable.Manyprogrammersliketodefinecolumnsbydefaultbecauseofthecon... 继续阅读 >
202202-10 MySQL如何解决幻读问题 目录前言一、什么是幻读?二、幻读有什么问题?(1)需要单独解决(2)间隙锁引发的并发度三、如何解决幻读?三、总结前言我们知道MySQL在可重复读隔离级别下别的事物提交的内容,是看不到的。而可提交隔离级别下是可以看到别的事务提交的。而如果我们的业务场景是在事物内同样的两个查询我们需要看到的数据都是一致的,不能被别的事物影响,就使用可重复读隔离级别。这种情况下RR级别下的普通查询(快照读)依靠MVCC解决“幻... 继续阅读 >
202201-22 浅谈MySQL之select优化方案 目录生活中的例子慢查询如何去优化countlimit最大值最小值min&max生活中的例子我们是否看到过在公司中许多查询语句都是select*xxxx心中的想法肯定是,别人写了select*,那我写吧,省去了不少麻烦事儿慢查询首先去思考,最基本的,是否我们使用的数据库插查询语句存在了访问的数据太多其实大部分性能低的查询往往都可以通过减少访问的数据量来优化的因为select*会给服务器带来额外的I/O、内存和cpu的消耗数据库中慢... 继续阅读 >