![](https://img-blog.csdnimg.cn/20190903135243798.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据库
文章平均质量分 55
Rsun04551
也许当我老了,也一样Code;不为别的,只为了爱好。
展开
-
MySQL中设计数据库时,设定字段默认值应选择null、空字符串““还是empty string?
在设计数据库时,选择字段的默认值(NULL、空字符串""还是空字符串)需要根据具体需求和使用场景来决定。每种默认值有其特定的用途和含义。原创 2020-12-04 16:48:37 · 2163 阅读 · 2 评论 -
MySQL中为什么IP地址最好使用int类型?
所以得出结论: INET_ATON() 就是把IP的每一段转为二进制拼接起来,然后将这个32位的二进制数字转为10进制。有人说节省空间, 也对, 不过比较蛋疼, 现在的硬盘那么便宜在乎这点空间?INET_ATON():将IP转为十进制数字。INET_NTOA():将数字转换为IP。原创 2021-01-27 09:31:44 · 718 阅读 · 2 评论 -
MySQL中性能优化--索引失效的原因以及如何进行SQL优化
接口性能优化大家第一个想到的可能是:优化索引。没错,优化索引的成本是最小的。你通过查看线上日志或者监控报告,查到某个接口用到的某条sql语句耗时比较长。原创 2022-11-07 09:12:33 · 154 阅读 · 0 评论 -
MySQL修改root用户的密码
【代码】MySQL修改root用户的密码。原创 2024-03-26 21:52:32 · 227 阅读 · 0 评论 -
在Java中实现redis缓存中的布隆过滤器
首先,我们计算了布隆过滤器所需的位数组长度和哈希函数个数,然后创建了布隆过滤器实例,并添加了几个元素。接着,我们将布隆过滤器序列化为字节数组,然后将其存储到 Redis 中。最后,我们查询了元素是否可能在集合中。在 Java 中实现 Redis 缓存中的布隆过滤器可以使用 Redis 的 Bitmap 数据结构。布隆过滤器是一种空间高效的数据结构,用于判断一个元素是否可能在集合中,它的特点是有一定的误判率。请注意,布隆过滤器的误判率取决于位数组长度和哈希函数个数等参数的设置,需要根据实际情况进行调整。原创 2023-08-09 11:04:40 · 469 阅读 · 0 评论 -
什么情况下容易发生锁表及如何处理
总之,解决锁表问题需要综合考虑数据库的设计、事务隔离级别、查询优化、业务逻辑等因素,选择合适的方法来避免或减少锁表的发生。:如果不同事务使用了不同的锁级别,比如某个事务使用了表级锁而另一个事务使用了行级锁,可能导致锁竞争和表级锁的出现。:在高并发环境下,大量的事务同时竞争资源,可能导致某些事务无法获取所需的锁,从而影响正常的操作。将一个大表拆分成多个小表,或者使用分库分表的方式,可以减少单个表的访问压力,从而减少锁表问题。对于一些频繁访问的数据,可以使用缓存技术,减少数据库的访问压力,降低锁表的概率。原创 2023-08-09 09:26:08 · 2249 阅读 · 0 评论 -
什么是行级锁和表级锁
行级锁和表级锁是数据库中常见的两种锁机制,用于在多个事务并发访问数据库时控制数据的访问权限和并发操作。语句,它会锁定查询结果中的指定行数据,其他事务需要等待当前事务释放锁后才能访问被锁定的数据行。语句,它会锁定整个表,其他事务需要等待当前事务释放锁后才能访问该表的数据。常见的行级锁实现方式是数据库中的。常见的表级锁实现方式是数据库中的。原创 2023-08-09 09:02:42 · 759 阅读 · 0 评论 -
什么是数据库悲观锁和乐观锁
乐观锁的实现方式一般是在数据表中增加一个版本号(或时间戳)字段,每次更新数据时,检查当前版本号是否与更新前的版本号一致,如果一致则更新成功,否则认为发生了并发修改。数据库中的悲观锁和乐观锁是两种不同的并发控制机制,用于在多线程环境下确保数据的一致性和正确性。)或表级锁,通过数据库的锁机制来实现数据的串行访问。常见的实现方式是使用数据库的行级锁(如。原创 2023-08-09 08:56:22 · 194 阅读 · 0 评论 -
MySQL解压版安装步骤 - 最全步骤流程
3.虽然会提示输入密码,但是由于是解压版,没有密码,所以直接回车就能进入数据库。右键此电脑 → 点击高级系统设置 → 环境变量。如果还不行,那点击这个连接应该会帮到你👉。一般情况下,刚解压安装的数据库需要输入。将安装包复制进对应目录,进行解压。2.按顺序执行以下三条命令。文件,在里面输入如下内容。如果有报错提示,那么改成。1.以管理员身份打开。点击放大镜 → 搜索。1.以管理员身份打开。点击放大镜 → 搜索。原创 2023-01-25 11:18:04 · 395 阅读 · 0 评论 -
Oracle的基本查询、多表查询和子查询
1、基本查询基本SQL语句清屏:host cls显示当前用户:show user查询当前用户的表:select * from tab查询员工表emp的结构:desc emp查询所有员工的信息:select * from emp连接两个字符串:select concat('Hello',' World') from dual或select 'Hello'||' World' from dual输出结果:Hello World把命令行上的命令制成文档:spool off格式化时间:sel原创 2021-06-26 15:14:43 · 167 阅读 · 0 评论 -
DOS操作数据乱码解决
我们在dos命令行操作中文时,会报错insert into user(username,password) values(‘张三’,’123’); ERROR 1366 (HY000): Incorrect string value: '\xD5\xC5\xC8\xFD' for column 'username' at row 1原因:因为mysql的客户端编码的问题我们的是utf8,而系统的cmd窗口编码是gbk解决方案(临时解决方案):修改mysql客户端编码。show variable原创 2021-05-23 21:05:00 · 292 阅读 · 0 评论 -
Mysql错误1452 - Cannot add or update a child row: a foreign key constraint fails 原因及解决方法
报错的原因大概分为三种:原因一:添加的外键列与另一个表的唯一索引列(一般是主键)的数据类型不同原因二:要添加外键的表类型与另一个表的存储引擎是不是都为innodb引擎#查看表引擎法一: show create table 表名;法二:show table status from 数据库 where name=‘表名’;法三:use information_schema;select table_catalog,table_schema,table_name,engine from tabl原创 2020-08-07 16:35:19 · 3531 阅读 · 2 评论 -
MySQL中的视图
视图是一个虚拟表(非真实存在),其本质是【根据SQL语句获取动态的数据集,并为其命名】,用户使用时只需使用【名称】即可获取结果集,并可以将其当作表来使用。例如不用视图调用:SELECT *FROM (SELECT * FROM cht_skusWHERE OWNER_BY='010801') AS aWHERE a.META_SKU='9010102100036'查询结果:在这里插入图片描述但是如果一千条查询中有一半以上需要用到上面的临时表进行查询时,如果每一次都这样写,那工作量就会原创 2020-05-25 18:47:43 · 175 阅读 · 0 评论 -
MySQL中三大范式与Mycat
MySQL设计三大范式:1、确保每个字段保持原子性2、确保表中每个字段都与主键相关3、确保每个字段和主键列直接相关,而不是间接相关当数据量从GB到TB再到PB时,关系型DB已经无法满足快速查询和插入操作,NoSQL的出现暂时解决了这一危机,ta通过降低数据的安全性,减少对事务的支持减少对复杂查询的支持,来获取性能上的提升。数据切分:垂直切分:根据不同表结构来切分不同的数据库;水平切分:将同一张表中的数据按照某个条件拆分;如何知道查询那个数据库?插入那个数据库?利用Mycat逻辑表:读写数原创 2020-05-25 15:15:20 · 170 阅读 · 0 评论 -
MySQL与Java对比
1、mysql与java类型对应表bigint Longtinyint Integerdecimal BigDecimaldatetime Datetimestamp Date2、视图:由查询结果形成的一张虚拟表。当一个查询结果出现非常频繁时,并且该查询结果进行子查询出现的非常频繁,此时可以将一个查询结果保存为一张虚拟的表,来供其他查询使用。优点:可以简化查询可以进行权限的控制。比如说将表的权限封闭,在开发相应的视图权限时,视图中只开放部分的数据。大数据分表。比如当一张表的行数超原创 2020-05-25 15:13:44 · 919 阅读 · 0 评论 -
MySQL中锁
1、Java的序列化机制通过在运行时判断类的serialVersionUID来验证版本的一致性。在进行反序列化时,JVM会将传来的字节流中的serialVersionUID与本地相应实体类的serialVersionUID进行比较,如果一样的话,就可以进行反序列化,否则就出现序列化不一致的异常,会抛出InvalidCastException!2、Having和Where的区别?having后面接的语句与where类似,where后面的表达式怎么写,having就怎么写,但是两者之间有一个很重要的区别就是原创 2020-05-25 15:12:14 · 239 阅读 · 0 评论 -
MySQL中索引与算法
vip_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '会员编号',`vip_name` varchar(10) NOT NULL DEFAULT '' COMMENT '会员姓名',`vip_cardID` varchar(18) NOT NULL COMMENT '会员身份证号码',`vip_iphone` varchar(10) NOT NULL COMMENT '会员电话',原创 2020-05-25 15:11:13 · 410 阅读 · 0 评论 -
MySQL-5.5.27版本安装图解
一直next到如下界面,选择服务器类型“Developer Machine(开发测试类,mysql占用很少资源)”、“Server Machine(服务器类型,mysql占用较多资源)”、“Dedicated MySQL Server Machine(专门的数据库服务器,mysql占用所有可用资源)”选择mysql数据库的大致用途,“Multifunctional Database(通用...原创 2020-04-14 09:57:23 · 211 阅读 · 0 评论 -
MySQL中数学函数之truncate用法
语法TRUNCATE(X,D)Returns the number X, truncated to D decimal places. If D is 0, the result has no decimal point or fractional part. D can be negative to cause D digits left of the decimal point of th...原创 2020-03-31 16:28:59 · 834 阅读 · 0 评论 -
MySQL中什么是主键索引、联合索引、覆盖索引、索引条件下推及区别
主键索引:特殊的唯一索引,不允许有空值,一般在建表时候指定主键,CREATE INDEX不能用来创建主键索引,通常使用ALTER TABLE来代替联合索引:对多个字段同时建立索引(联合索引是有顺序的,比如ABC,ACB是完全不同的两种联合索引)覆盖索引:即从辅助索引中得到查询的记录,而不需要查询聚集索引中的记录,覆盖索引必须要存储索引列的值,而哈希索引、空间索引和全文索引等都不存储索引列的值,所以MySQL只能使用B-Tree索引做覆盖索引。原创 2020-03-04 13:43:15 · 2175 阅读 · 2 评论 -
MySQL中的explain
分析MySQL语句查询性能的方法:1、慢查询:超过指定时间的SQL语句查询2、使用 EXPLAIN 输出执行计划今天就带领大家看下explain的用法,我们可以通过explain命令来查看SQL语句的执行计划,查看该SQL语句有没有使用上了索引,有没有做全表扫描。用法很简单,就是在SQL语句前面加个explain即可,例如:EXPLAIN SELECT META_TITLE,META_D...原创 2020-03-01 11:06:14 · 143 阅读 · 0 评论 -
MySQL中的慢查询
分析MySQL语句查询性能的方法有两种:1、慢查询:超过指定时间的SQL语句查询2、使用 EXPLAIN 输出执行计划今天就来讲下慢查询相关的内容以用于性能调优。查看/设置“慢查询”的时间定义show variables like "long%";结果:如上述语句输出,“慢查询”的时间定义为1秒(方便测试,一般设置为1-10秒)。定义“慢查询”时间set long_query...原创 2020-03-01 10:33:04 · 335 阅读 · 0 评论 -
Mysql常用SQL查询语句优化方法
避免引擎放弃使用索引而进行全表扫描:1、应尽量避免在 where 子句中使用!=或<>操作符;2、对查询进行优化,首先应考虑在 where 及 order by 涉及的列上建立索引。3、应尽量避免在 where 子句中对字段进行 null 值判断,如:select id from t where num is null可以在num上设置默认值0,确保表中num列没有null值......原创 2020-03-01 11:28:48 · 347 阅读 · 0 评论 -
SQL教程学习总结
从现在开始,坚持一周,拿下SQL!关系数据库:SQL关键字总是大写,以示突出,表名和列名均使用小写。1、数据模型分为层次模型、网状模型、关系模型2、BIGINT\VARCHAR(N)是日常用于最广泛的数据类型3、SQL-结构化查询语言、DDL-定义数据(增删表,修改表结构)、DML-管理数据(增删改数据)、DQL-查询数据关系模型:通常情况下,字段应该避免允许为NULL。不允许为NU...原创 2019-12-06 17:23:01 · 175 阅读 · 0 评论 -
阿里云rds数据库导出到windows本地数据库中
1、首先进入RDS管理控制台在搜索框中输入MySQL,然后选中RDS版,进入控制台前首先要关闭数据库连接,否则找不到实例。下面的实例任意选中一个点击进入2、下载数据库文件下载完成后执行以下步骤:一、本地mysql数据库创建与备份库一致的数据库名,如testdb;二、本地创建与备份库一致的数据库表,记得设置ALTER TABLE tableName1 ROW_FORMAT = c...原创 2019-12-04 15:31:23 · 1191 阅读 · 0 评论 -
MySQL本地数据库忘记密码时如何修改
打开mysql.exe和mysqld.exe所在的文件夹,复制路径地址2打开cmd命令提示符,进入上一步mysql.exe所在的文件夹。3输 入命令 mysqld --skip-grant-tables 回车,此时就跳过了mysql的用户验证。注意输入此命令之后命令行就无法操作了,此时可以再打开一个新的命令行。注意:在输...原创 2019-11-20 17:27:55 · 179 阅读 · 1 评论 -
数据库三大范式-MySQL入门很简单
数据库范式就是数据库应该遵循的规则,关系型数据库最常见的4大范式分别是第一范式(1NF)、第二范式(2NF)、第三范式(3NF)和BCN范式。在设计数据库时,数据库需要最低的要求是满足第一范式,第一范式的要求即表中不能有重复的字段,并且每一个字段不能拆分。如果一个数据库连第一范式都不能满足的话,就不能称之为关系型数据库了。只有满足了第一范式的要求,才可以在这个关系数据库中创建表。...原创 2019-10-08 16:33:47 · 120 阅读 · 0 评论 -
如何远程连接本地数据库(1130)
部署了一个 数据库采用Mysql的程序,sqlyog连接非本地的Mysql服务器的数据库,居然无法连接很奇怪,报1130错误,ERROR 1130: Host 192.168.3.100 is not allowed to connect to this MySQL server猜想是无法给远程连接的用户权限问题。结果这样子操作MySQL库,即可解决。特贴出来。。在本机登入mysql后,更改...原创 2019-09-20 15:42:15 · 592 阅读 · 0 评论 -
MYSQL数据库设计规范与原则
有远大抱负的人不可忽略眼前的工作!!! MYSQL数据库设计规范与原则 MYSQL数据库设计规范1、数据库命名规范 采用26个英文字母(区分大小写)和0-9的自然数(经常不需要)加上下划线'_'组成; 命名简洁明确(长度不能超过30个字符); 例如:user, stat, log, 也可以wifi_user, wifi_stat, w...原创 2018-12-15 08:58:04 · 1923 阅读 · 0 评论 -
数据库分库分表的应用场景及解决方案
数据库分库分表的应用场景及解决方案&nbsp; &nbsp; &nbsp; &nbsp;现实业务场景中,为了保障客户体验并满足业务的线性增长。会对数据量巨大,且业务会始终进行的产品进行分表分库策略。但是如何合理的根据业务采取争取的分表分库策略至关重要。下面以具体实例来进行分析。• 场景一:用户中心,单key业务如何进行数据库切分•...转载 2018-10-24 17:24:30 · 296 阅读 · 0 评论 -
数据库分库分表思路
数据库分库分表思路 一. 数据切分关系型数据库本身比较容易成为系统瓶颈,单机存储容量、连接数、处理能力都有限。当单表的数据量达到1000W或100G以后,由于查询维度较多,即使添加从库、优化索引,做很多操作时性能仍下降严重。此时就要考虑对其进行切分了,切分的目的就在于减少数据库的负担,缩短查询时间。数据库分布式核心内容无非就是数据切分(...转载 2018-10-22 18:40:43 · 201 阅读 · 0 评论 -
Redis的五种数据类型
1、String:key-value redis命令不区分大小写,但是key区分的redis中的数据都是字符串。redis是单线程,(不适合存储比较大的数...原创 2019-08-31 09:34:47 · 198 阅读 · 0 评论 -
RedisTemplate及其相关方法
1、Spring封装了RedisTemplate对象来进行对Redis的各种操作,它支持所有的Redis原生的api。RedisTemplate位于spring-data-redis包下。RedisTemplate提供了redis各种操作、异常处理及序列化,支持发布订阅,并对spring 3.1 cache进行了实现。pom文件中引入相关依赖:<!-- redis 缓存操作 --><dependency> <groupId>org.springframewo原创 2021-03-26 10:53:15 · 808 阅读 · 0 评论 -
Navicat保存下来的查询放在哪个位置
保存后的查询文件查找位置:1、在链接上右键点击连接信息2、打开后复制设置位置然后打开我的电脑,在搜索框粘贴该路径即可3、打开后如下,自己在文件夹下查找即可...原创 2020-03-16 13:44:23 · 3665 阅读 · 0 评论 -
MySQL 中 datetime 和 timestamp 的区别与选择
MySQL 中常用的两种时间储存类型分别是datetime和timestamp。如何在它们之间选择是建表时必要的考虑。下面就谈谈他们的区别和怎么选择。...原创 2020-03-14 12:10:17 · 514 阅读 · 0 评论 -
SQL中,表之间的左联和右联是什么意思
定义:左联:首先取出a表中所有数据,然后再加上与a,b匹配的的数据内联:两个表a,b相连接,要取出id相同的字段右联:指的是首先取出b表中所有数据,然后再加上与a,b匹配的的数据表关联是在SQL中非常常用的东西join全连接:查找左表(主表)和右表(子表)都存在的数据left join左联接:查找左表(主表)为查找全集,右表(子表)存在的关联出来,不存在的为NUL原创 2017-09-12 16:10:38 · 6236 阅读 · 0 评论 -
Windows下Redis的安装和使用
1、要安装Redis,首先要获取安装包。Windows的Redis安装包需要到以下GitHub链接找到。链接:https://github.com/MSOpenTech/redis。打开网站后,找到Release,点击前往下载页面。2、在下载网页中,找到最后发行的版本(此处是3.2.100)。找到Redis-x64-3.2.100.msi和Redis-x64-3.2.100.zip,点击下载。...原创 2020-03-05 15:04:52 · 383 阅读 · 0 评论 -
Redis中BitMap的用法
什么是 BitMapBitMap,即位图,其实也就是 byte 数组,用二进制表示,只有 0 和 1 两个数字。如图所示:重要 API演示:应用场景统计每日用户的登录数。每一位标识一个用户ID,当某个用户访问我们的网页或执行了某个操作,就在bitmap中把标识此用户的位设置为1。这里做了一个 使用 set 和 BitMap 存储的对比。场景1:1 亿用户,5千万独立场景2...原创 2020-03-05 14:23:01 · 1574 阅读 · 1 评论 -
Mysql中like模糊查询的优化
MySQL在使用like查询的时候只使用后面的%时,才会使用到索引。原创 2018-11-02 09:37:30 · 3098 阅读 · 1 评论 -
MySQL基础练习题(含详细答案)
思路:1、根据提问或者需求分析想要的结果是什么Select XXXXX2、确定想要得到XXXXX的话需要涉及到哪些表Select XXX from YYYY3、分析是否需要条件 where > ,< ,= ,<> , >=, <=,in,between,and,orSelect XXX from YYY where ZZZZ4、是否需要函数...原创 2018-10-17 16:40:19 · 14379 阅读 · 3 评论