一、前言 在工作中经常要与 mysql 打交道,但是对 mysql 的各个字段类型一直都是一知半解,因此写本文总结记录一番。 二、简介 ? ...对于 int 类型的一些基础知识其实上图已经说的很明白了,在这里想讨论下常用的 int(11) 代表什么意思,很长时间以来我都以为这代表着限制 int 的长度为 11 位,直到有天看到篇文章才明白,11...代表的并不是长度,而是字符的显示宽度,在字段类型为 int 时,无论你显示宽度设置为多少,int 类型能存储的最大值和最小值永远都是固定的,这里贴一些原文片段。 ...那么照文中所说,所以无论怎么设置 int 类型的显示宽度,int 所能存储的最大值和最小值是固定的,那么这个显示宽度到底有什么用呢? ...三、结论 从上个例子我们可以得出以下几个结论: 1、如果一个字段设置了无符号和填充零属性,那么无论这个字段存储什么数值,数值的长度都会与设置的显示宽度一致,如上述例子中的字段 b,插入数值 1 显示为
python中for _ in range () 中’_'的意思以斐波那契数列为例#求前20项的斐波那契数a = 0b = 1for _ in range(20): (a, b) = (b, a...+ b) print(a, end=' ')其中’_’ 是一个循环标志,也可以用i,j 等其他字母代替,下面的循环中不会用到,起到的是循环此数的作用 就像C语言中for (int i ; i的’i’在下面并不会用到,起到的只是控制循环此数的作用。
/* Navicat MySQL Data Transfer -- Navicat MySQL数据转换信息 Source Server : localhost...-- 源主机 Source Database : db_fz -- 源数据库名 Target Server Type : MYSQL
任何数据库在设计之初都有主键,没有主键的表是不完整的,尤其在MYSQL中,而MYSQL中的主键设计中,总有一些 “奇葩” 的行为,来让MYSQL 在运行中,因为主键的奇葩设计而导致各种各样的问题,我们今天来总结总结...3 复合主键 很多MYSQL设计中表的主键被设计成复合主键,而复合主键的使用中会存在一些问题 问题1 性能问题 在MYSQL 中的数据组织方式是 B+TREE的方式,而主键是根节点的组织中的通过排序的方式来存放数据的一种数据存储组织方式...问题 2 死锁问题 因为在MYSQL中不同的隔离级别会对数据库产生不同的影响,实际就是GAP LOCK ,next-key-looking 的问题,具体参见专业描述 RR RC 在范围查询和数据插入...,最后影响了2行数据,实际上就是 delete + insert (个人认为),尤其在MYSQL中对于性能的影响会较大。...综上所述,复合主键使用 on duplicate key update 应该小心注意逻辑上是否符合最初的设计要求,同时在MYSQL 的表设计中应尽量不使用复合主键来进行数据表的设计,避免一些未知问题的产生
碰巧看到一篇文章提到了Oracle的greatest函数,相对应的有个least,以为这俩是个新的函数,但是看了下官方文档,其实在11g的《SQL Language Reference》,就提到了他们,...least函数介绍, LEAST returns the least of a list of one or more expressions....概括来讲, 1. greatest/least可以接收一个或多个字面值/字段列,返回其中的最大值/最小值。 2. greatest/least返回的数据类型,参照第一个参数的数据类型。...当参数是两个number类型的,返回的是每行中数值最大的值, SQL> select greatest(id1, id2) from t_compare; GREATEST(ID1,ID2) ----...------------- 2 3 当参数是两个varchar2类型的,返回的是每行中字符最大的值, SQL> select greatest
[ -r FILE ] 如果 FILE 存在且是可读的则为真。 [ -s FILE ] 如果 FILE 存在且大小不为o则为真。...[ -w FILE ] 如果 FILE 如果 FILE 存在且是可写的则为真。 [ -x FILE ] 如果 FILE 存在且是可执行的则为真。...[ FILE1 -ef FILE2 ] 如果 FILE1 和 FILE2 指向相同的设备和节点号则为真。...[ -z STRING ] “STRING” 的长度为零则为真。 [ -n STRING ] or [ STRING ] “STRING” 的长度为非零 non-zero则为真。...[ -z “echo 111s|sed 's/[0-9]//g'” ] && echo 1 || echo 0 #把字符串中的数字都替换掉
大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说java中的实例什么意思?,希望能够帮助大家进步!!! 实例是指基于某个类的对象实现。这一过程被称为实例化。...实例生成: 1、使用new关键字 (需要public修饰的构造方法,默认的无参构造会有被覆盖隐藏问题,使用框架时需要注意。...也可以通过控制构造方法的访问修饰符,实现单例模式-懒汉|饿汉(双重检查锁)|静态内部类|枚举-。) 2、Class类的newInstance方法。...3、Constructor类的newInstance方法 4、clone(实现Cloneable接口) 序列化与反序列化(实现Serializable或Externalizable ) 谢谢大家,希望帮助更多的人
要理解yield,先理解几个概念 可迭代的(Iterables) 从list中挨个读取item称为迭代, 如下例所示。...print(i) 1 2 3 mylist是可迭代的。...因为它们不把数值存储在内存中,而是即时生成它们。 >>> mygenerator = (x*x for x in range(3)) >>> for i in mygenerator: ......Yield yield关键字很像return,所不同的是,它返回的是一个生成器。 >>> def createGenerator(): ... mylist = range(3) ......print(i) 0 1 8 当你调用这个函数的时候,函数内容并没有执行,而是返回一个生成器对象。然后,你再用for去遍历这个生成器。
死锁是在开发多线程时才会遇到的。原因就是不同的线程都在等待其它线程释放锁,而其它线程由于一些原因迟迟没有释放,这就造成了所有的线程都开始等待程序出现了假死的现象。说白了这就是一个BUG。...我们用下面简单的程序来模拟一下死锁发生的现象。 ? ? ? ? 发现程序居然不输出了,这就是我们上面所说的死锁现象。所有线程都在等着对方释放锁 ,所以就会出现这种程序假死情况。...因为在多线程中是不太好查找问题所在的。别担心Java为我们提供了一个命令来帮我们快速的查找问题所在。下面的方法就是如果真有死锁发生,我们怎么快速查看问题。 我们用windows系统来演示。...具体的步骤如下: 我们用cmd进入系统的命令窗口。 将目录切换到Jdk安装目录的bin下。 运行Java自带的jps命令 运行jstack -l 进程id 下面看我具体的执行效果: ? ? ?...看到没这个命令直接帮我们定位到了代码中的某一行了,很方便我们查找问题有没有。如果以后在开发多线程中果真遇到了死锁问题,那么我们就可以用上述的方法快速定位问题。
'1234567890'这个字符串,此时我们执行: select * from t where b='1234567890abcd'; 那么MySQL将会发生什么现象???...真实的执行情况如下: 1、MySQL先截取SQL语句中b的前10个字节'1234567890',查询到符合条件的索引b上的记录有10w跳, 2、然后将这10w跳记录逐一"回表"去聚集索引上进行查询。...下面的测试过程能够比较直接的反映这个问题: mysql> show create table test1\G *************************** 1. row ***********...> select *from test1 where b='1234567890abcd'; Empty set (0.00 sec) 可以看到explain的结果中的扫描行数和实际上b的值为'1234567890...'的行数一致,说明MySQL执行的过程中,确实找到了24行匹配的记录进行回表的。
发表于2017-04-112019-01-01 作者 wind 下面我们一起来看一篇关于shell条件判断if中的-a到-z的意思,有需要了解的朋友不防进入参考参考. [ -a FILE ] 如果...[ -r FILE ] 如果 FILE 存在且是可读的则为真。 [ -s FILE ] 如果 FILE 存在且大小不为o则为真。...[ -w FILE ] 如果 FILE 如果 FILE 存在且是可写的则为真。 [ -x FILE ] 如果 FILE 存在且是可执行的则为真。...[ FILE1 -ef FILE2 ] 如果 FILE1 和 FILE2 指向相同的设备和节点号则为真。...[ -z STRING ] “STRING” 的长度为零则为真。 [ -n STRING ] or [ STRING ] “STRING” 的长度为非零 non-zero则为真。
虽然这可以包括非常复杂的表达式,但最基本的用法是将值插入到%s 占位符的字符串中。 示例1: #!...dengao hello dengao 注:该 %s 令牌允许我插入(和潜在的格式)的字符串。请注意, %s 令牌被替换为% 符号后传递给字符串的任何内容。...还要注意,我也在这里使用一个元组(当你只有一个使用元组的字符串是可选的)来说明可以在一个语句中插入和格式化多个字符串。...总结:%运算符就是用来格式化字符串的。在字符串内部,%s表示用字符串替换,%d表示用整数替换,有几个%占位符,后面就跟几个变量或者值,顺序要对应好。如果只有一个%,括号可以省略。...常见的占位符有: 占位符 替换内容 %d 整数 %f 浮点数 %s 字符串 %x 十六进制整数
URL 是我们进行网络活动中很重要的概念,一个URL中可以包含域名,路径和参数等, 一个典型的 URL https://www.example.com/fruits.html?...apple 这其中包含了 协议: https 域名: www.example.com 路径文件名: fruits.html 参数: from=google 片段: apple #片段是什么 URL 中的...# 指的是一个片段 URL 片段 往往用来告知浏览器约定的一个滑动位置 如果一个 URL 指向了一个文档,那么片段指向的就是文档的某个内容区间。...对于浏览器,上面的链接指向同一文档,但是具有不同的滑动位置 对于服务器,上面的链接指向同一文档,没有其他信息了。...# 还能怎么用 考虑到在浏览器可以获取片段信息,我们可以利用 Javascript做一些事情 网页应用可以使用片段来实现参数控制,做到不刷新页面,展示不同的内容 如下为 JavaScript获取片段的示例代码
在render函数中是无法使用这些指令的。 取而代之的是以纯 JS 来实现,对于大多数指令而言,这也是比较简单的。...v-for v-for可以使用for-of,Array.map,Array.filter等的JS方法中的任何一种来实现。...假设,在 Vue 中,我们有如下的结构: 上面代码等价于: ...render(h) { return h('div', { // “类”是JS中的保留关键字,因此必须引用它。...$scopedSlots[scope](props:object) 中,作为返回createElement()节点数组的函数。
今天松哥就来和大家聊一聊 MySQL 里边的这个前缀索引。...这有点类似于 Oracle 中对字段使用 Left 函数来建立函数索引,只不过 MySQL 的这个前缀索引在查询时是内部自动完成匹配的,并不需要使用 Left 函数。...索引的选择性越高则查询效率越高,因为选择性高的索引可以让 MySQL 在查找时过滤掉更多的行。 那有小伙伴要问了,是不是选择性越高的索引越好呢?当然不是!...那么我们该如何选择一个合适的索引选择性呢?索引前缀应该足够长,以便前缀索引的选择性接近于索引的整个列,即前缀的基数应该接近于完整列的基数。...松哥这里使用的数据样例是 MySQL 自己提供的数据样例,SQL 脚本下载链接:https://downloads.mysql.com/docs/world_x-db.zip。
在while loops里我们常常会碰到的 += 意思很简单,大致上大家都说了 再加以解释吧!...>>> num = 1 当 num 小过5 或等于 5 它会一直不断的输出,直到 num 大过才会停止输出"I'm Mtcy" 在这个时候我们注意到在下方有一行代码. num +=1 在这儿的意思是...因为,如果我们不输入这一行代码,那么 num 永远都会等于 1 永远等于1的话,那么就会不断的输出 "I'm Mtcy",那么唯一能做的就只有强制性关闭..... >>> num 6 现在你输入num,发现它的值已经增加到6了.这就是为什么会停止输出的原因. 想证明看看?...num1 += 1 Hello,I'm Mtcy 1 Hello,I'm Mtcy 2 Hello,I'm Mtcy 3 Hello,I'm Mtcy 4 Hello,I'm Mtcy 5 很清晰的看到了
python中pop()将列表指定位置的元素移除,同时可以将移除的元素赋值给某个变量,不填写位置参数则默认删除最后一位 pop()根据键将字典中指定的键值对删除,同时可以将删除的值赋值给变量 举个例子...: 输出结果: 我们将列表a的位置1的元素移除 将列表b的位置0的元素移除并赋值给变量b1 输出结果: 以上就是python中pop什么意思的详细内容
Python 函数-> 是什么意思 在看他人的Python代码时,发现: 就很迷惑了然后,不知道后面的 ->list 是什么意思,经过查阅得知: ---- 常常出现在python函数定义的函数名后面...,为函数添加元数据,描述函数的返回类型,从而方便开发人员使用。...这样做的好处:使用预期的类型来注释参数,然后在函数返回值验证时检验参数的类型或者将其强制转换成预期的类型。
mysql垂直拆分是什么意思 概念 1、指数据列的分割,将列多的表分割成多个表。表格的记录虽然不多,但字段长,表格占有空间大。 搜索表格时需要大量IO,性能大幅度降低。...此时,有必要将大字段分成另一个表,这个表与原表是一对一的关系。 2、优点,使得行数据变小。...可以使得行数据变小,一个数据块( Block )就能存放更多的数据,在查询时就会减少 I/O 次数 可以达到化利用 Cache 的目的,具体在垂直拆分的时候可以将不常变的字段放一起,将经常改变的放一起...主键出现冗余,需要管理冗余列 会引起表连接JOIN操作,可以通过在业务服务器上进行join来减少数据库压力 依然存在单表数据量过大的问题 事务处理复杂 以上就是mysql垂直拆分的介绍,希望对大家有所帮助...更多mysql学习指路:MySQL 推荐操作系统:windows7系统、mysql5.8、DELL G3电脑