![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据库
文章平均质量分 58
rgbhi
空无一物,无限可能
展开
-
springboot mongodb 模糊查询报错
写mongodb查询的时候,使用了Criteria 的regex。但是查询一些特殊字符的时候,需要做下转义处理,重点如下。这样就不会再报正则的错误。原创 2023-09-21 16:23:58 · 222 阅读 · 0 评论 -
mysql 索引 区分字符大小写
9.0的规范,ai表示accent insensitivity,也就是“不区分音调”,而ci表示case insensitivity,也就是“不区分大小写”。mysql 建立索引,特别是unique索引,是跟字符集、字符排序规则有关的。那么会报错,因为mysql认为中文括号,英文括号,是一个字符(不区分大小写)根据规则的含义,改为带cs的规则,就可以避免这种不区分字符大小写的报错。对于utf8mb4_0900_ai_ci来说,0900代表。上述这种数据,如果选了。原创 2023-08-15 11:59:06 · 809 阅读 · 0 评论 -
MySQL报错 - Cannot add foreign key constraint
表迁移,先导的表结构,没想到一些表导入失败,并且报“Cannot add foreign key constraint”。提示已经很详细了,无法添加外键约束。意思是,要创建这张表之前,REFERENCES qrtz_triggers这张表需要先被创建出来。所以,搜索一下创建语句里,有哪些表REFERENCES,将那些表先导入才行。外表和外表之间可能也有创建顺序关系,仔细导入。想想如何解决这种问题,避免以后再遇到,手动理清这些表的引用关系还是很麻烦的。建议:默认的数据库导出表的顺序是字典序的。原创 2021-05-20 11:23:13 · 1079 阅读 · 0 评论 -
索引的底层实现——高性能Mysql(第五章笔记2)
B+树索引的使用根据上一篇文章,我们已知,Mysql施加索引的底层结构是B+树(innodb),B+树是根据某一值来进行排序的。我们日常使用中,索引可以引用了很多列,而不是单一列的索引。1、如果不是按照索引的最左列开始查找,则无法使用索引。2、不能跳过索引中的列,否则生效的只能是索引左侧没跳过的列。3、如果查询中有某个列是范围查询,则其右边的列都无法使用索引优化查找。上面三条意味着,索引中列的顺序,至关重要。哈希索引只有Memory引擎显式支持哈希索引(NDB集群所有也支持)。Innodb原创 2021-03-12 13:24:51 · 130 阅读 · 0 评论 -
索引的底层实现——高性能Mysql(第五章笔记1)
我们知道,数据库的底层索引,都是由B类树实现的。什么是B类树?为什么选用B类树呢?这是我们需要探寻的。在学习B类树之前,还是先复习一下平衡二叉树的知识一个顶点两个叉(叶子)。左右高度差不超过1。如果超过,则需要左右旋转来重新保持平衡。左边子结点小于父结点,右边子结点大于父结点。(大小规则,自定义)这样,查找的话,每次比较查找的值与节点的值,从而判断是从左还是从右边下去,可以将查找比较次数降低到不足Log(n),n为结点数。那B树跟二叉平衡树有什么差别呢?B树的叉更多了,二叉树就2个叉,要原创 2021-03-11 13:58:47 · 100 阅读 · 0 评论 -
列、范式?——高性能Mysql(第四章笔记2)
列总是不应该设置的太长的,除非每次查一定是要这么长的键内容。我们可以看到,从存储引擎到服务器层面,是用行缓冲去copy数据的,在服务器层再解码成各个列。如果无意义的列太多,是会消耗大量的CPU资源的。范式、反范式是什么?教科书里很大的一个问题,就是承载着概念的词,也可以叫术语,如果没有学习过这种概念(术语),那么一个人很难知晓,这个词到底代表什么,到底是什么意思。而这种词可能就只是一小部分人约定俗成的,不同的行业,同样的术语可能都代表不同的意思。感谢互联网,可以轻松查找这些词对应的概念,如果是以原创 2021-03-10 15:11:34 · 69 阅读 · 1 评论 -
Mysql数据类型的优化,如何选择合适的数据类型呢?——高性能Mysql(第四章笔记1)
选择数据类型的一般性偏好1、在确保没有低估需要储存的值的范围下,选择占用越小的数据类型。这很容易理解,谁都不喜欢啰嗦的话语,计算机也一样。2、简单就好如果该列需要排序,优先选用数据库里已内置的数据类型。比如储存时间,大家应该都会去使用datatime,timestamp这种,而不会使用字符串来储存。因为整型比字符操作代价更低(更快)。还有一个例子是用整型储存ip地址。3、尽量避免 null这指的是要排序的列里,最好不要使用null值,如果只是查询不排序,那无所谓了。不建议在可为空的列上,做索引。原创 2021-03-09 14:55:59 · 210 阅读 · 1 评论