SQL
文章平均质量分 58
SQL,微信搜「JavaPub」白嫖原创电子书和思维导图
JavaPub-rodert
技术&自媒体,专注于面试技巧,擅长Java、Go、MySQL、区块链
展开
-
乐观锁 or 悲观锁 你怎么选?
@FilePath: \JavaPub-Blog\docs\posts\sql\乐观锁和悲观锁.md你有没有听过这样一句话:悲观者正确,乐观者成功。那么今天我来分享下什么是乐观锁和悲观锁。乐观锁和悲观锁有什么区别,它们什么场景会用。原创 2024-05-30 21:37:43 · 637 阅读 · 0 评论 -
2024了,还有人在问为甚死锁?
死锁是在事务数据库中会发生的一种特殊现象,多个事务在执行过程中,相互等待对方持有的资源,导致这些事务都无法继续执行。简单来说,就是两个或多个事务陷入了一个循环等待的状态,每个事务都在等待其他事务释放资源。接上篇提到了锁,《InnoDB有哪些锁类型》。这么多的锁,你有遇到过死锁吗?大家好,我是javapub。比如这个蛇和青蛙互不放手。原创 2024-05-29 21:35:49 · 398 阅读 · 0 评论 -
编程5年的老哥说:我代码里从来不用锁,谁爱...
技多不压身!大家好,我是 javapub。今天一个朋友找我吐槽,说自己平时在工作中几乎用不到需要上锁的场景,就算有也只是并发很小、或者直接从有业务设计上就规避掉了。但一到面试,都是各种锁题,很头疼。面试造火箭的现象是这个行业的一个常态,而且掌握底层知识真的可以帮助我们更好的做好技术设计。所以,我劝他不要抵触,等学会的知识点多了融会贯通,学其他的东西也会快很多。原创 2024-05-28 14:58:35 · 943 阅读 · 0 评论 -
MySQL索引18连问,谁能顶住
过完这个节,就要进入金银季,准备了 18 道 MySQL 索引题,一定用得上。作者:github聚簇索引是将表的数据按照索引顺序存储在磁盘上,聚簇索引的叶子节点直接存储了实际的数据行,而不是指向数据的指针。所以在查询的时候减少了磁盘的随机读取,无需进行多次磁盘I/O效率很高。非聚簇索引是一种基于指针的索引,有时也叫它二级索引。非聚簇索引不直接存储实际的数据,seelec 语句在执行查询时,会先根据二级索引定位到数据所在的磁盘位置,然后再进行一次磁盘I/O操作,读取实际的数据行。回表定义。原创 2024-03-25 21:49:15 · 1809 阅读 · 0 评论 -
postgreSQL如何快速查询大表数据量
如果你需要更快地获取表中的行数,你可以考虑使用特定的技术或工具来进行优化。一种常见的方法是使用表的统计信息,比如PostgreSQL中的。但需要注意的是,这种方法可能不会总是返回最新的准确值,因为统计信息可能会有一定的延迟。表,它包含了关于表的行数等统计信息。这个查询会直接从系统表中获取表的统计信息,因此可能比。我有一个非常大的表,估计几百万或者几千万。速度非常快,有图有真相。原创 2023-11-22 15:53:47 · 2613 阅读 · 0 评论 -
【sql】PostgreSQL物化视图表使用案例
【代码】【sql】PostgreSQL物化视图表使用案例。原创 2023-06-08 15:52:59 · 218 阅读 · 0 评论 -
Windows 10安装MySQL 5.7完整教程
选择下载windows(x86, 64-bit), ZIP Archive版本,下载完成后解压到您的电脑硬盘上。下载地址:https://dev.mysql.com/downloads/mysql/5.7.html。通过MySQL的自带客户端或其他工具使用新密码连接MySQL,如果成功连接表示MySQL安装成功!通过MySQL自带的MySQL服务管理器 或 MySQL Workbench 连接MySQL。在Windows的 Cortana搜索框中输入“环境变量”,选择“编辑你的环境变量”。原创 2023-05-14 10:10:46 · 1025 阅读 · 0 评论 -
非交互方式指定psql,pg_dump密码
psql 和 pg_dump 等工具连接PostgreSQL数据库时,通过-W参数,在终端以交互方式输入密码,很多时候,我们希望使用脚本调用psql或者pg_dump做一些自动化的操作,那么此时如何以非交互方式指定密码?原创 2022-11-24 19:53:02 · 971 阅读 · 0 评论 -
postgreSQL 导出数据、导入
postgreSQL 导出 5G 单表。导入、指定字段导入。原创 2022-11-09 16:55:14 · 460 阅读 · 0 评论 -
B树和B+树的区别
文章目录简述写在前面1、B树2、B+树深入浅出B树B树深入B-树的查找B+ 树B+树概述B-树和B+树的区别拓展:MySQL为什么使用B-Tree(B+Tree)&& 存储知识存储数据最小单元主存存取原理磁盘存取原理总结简述写在前面B树 和B+树是 MySQL索引使用的数据结构,对于索引优化和原理理解都非常重要,下面我的写文章就是要把B树,B+树的神秘面纱揭开,让大家在面试的时候碰到这个知识点一往无前,不再成为你的知识盲点!1、B树这里的 B 是 Balance(平衡)的缩写。原创 2021-09-14 12:25:19 · 27149 阅读 · 9 评论 -
数据库连接池到底应该设多大?
文章目录前言正文1万并发用户访问But why?有限的资源计算公式请注意前言本文内容95%译自这篇文章:https://github.com/brettwooldridge/HikariCP/wiki/About-Pool-Sizing我在研究 HikariCP(一个数据库连接池)时无意间在 HikariCP 的 Github wiki上看到了一篇文章(即前面给出的链接),这篇文章有力地消除了我一直以来的疑虑,看完之后感觉神清气爽。故在此做译文分享。正文数据库连接池的配置是开发者们常常搞出坑的地方原创 2021-09-09 21:01:51 · 663 阅读 · 0 评论 -
MySql安装异常解决:1130 - Host ‘11*.17*.6*.23*‘ is not allowed to connect to this MysQL server
这个问题是因为在数据库服务器中的mysql数据库中的user的表中没有权限(也可以说没有用户),下面将记录我遇到问题的过程及解决的方法。 在搭建完LNMP环境后用Navicate连接出错 遇到这个问题首先到mysql所在的服务器上用连接进行处理 1、连接服务器: mysql -u root -p 2、看当前所有数据库:show databases; 3、进入mysql数据库:use mysql; 4、查看mysql数据库中所有的表:show tables; 5、查看原创 2021-09-03 11:14:13 · 246 阅读 · 1 评论 -
mysql5.7安装失败
文章目录报错:This application requires Visual Studio 2013 x86 Redistributable. Please install the Redistributable then run I this installer again解决报错:This application requires Visual Studio 2013 x86 Redistributable. Please install the Redistributable then run原创 2021-09-02 21:01:50 · 1055 阅读 · 0 评论 -
win10安装mysql5.7
本文记录了mysql安装详细教程,分享给大家。一、版本的选择之前安装的Mysql,现在才来总结,好像有点晚,后台换系统了,现在从新装上Mysql,感觉好多坑,我是来踩坑,大家看到坑就别跳了,这样可以省点安装时间,这个折腾了两天,安装了好多个版本,终于安装好了,最终选择了最新的版本mysql-installer-community-5.7.16.0。以前是在其他软件网站下载的,但是觉得还是在官方网站下载比较靠谱。进入到MySql官方网站,进入到下载界面。看到这个,选择“MySQL Installer原创 2021-09-02 11:31:28 · 412 阅读 · 0 评论 -
mysql自动创建时间和更新时间
create_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP comment ‘创建时间’,update_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP comment ‘更新时间’,原创 2021-09-01 08:22:03 · 408 阅读 · 0 评论 -
mybatis 实现批量多条件的查询【案例+代码】
SQL:select * from user where (user_id,type) in ((568,6),(569,6),(600,8));MyBatis XML: select date_format(create_Time,'%Y-%m-%d %H:%i:%s') as createTime ,reason,operator,remarks,operation from refund_order_log where (order_no,channel) in原创 2021-07-23 10:35:15 · 3314 阅读 · 0 评论 -
如果mysql磁盘满了,会发生什么?还真被我遇到了!
阅读大概3分钟使用命令发现磁盘使用率为 100% 了,还剩几十兆。一系列神操作备份数据库,删除实例、删除数据库表、重启 mysql 服务.结果磁盘空间均为释放怎么办网上查了很多资源,说要进行磁盘碎片化整理。原因是 datafree 占据的空间太多啦。具体可以通过这个 sql 查看。SELECT CONCAT(TRUNCATE(SUM(data_length)/1024/1024,2),'MB') AS data_size,CONCAT(TRUNCATE(SUM(max_data_lengt.原创 2021-07-12 22:16:52 · 265 阅读 · 0 评论 -
SQL通过多个字段排序
select uid,dtime from spider order by dtime desc ,uid desc limit 300 通过dtime和uid进行逆序原创 2021-07-12 16:02:58 · 615 阅读 · 0 评论 -
SQL---mysql新增字段
ALTER TABLE people ADD COLUMN name VARCHAR(100) DEFAULT NULL COMMENT '姓名' AFTER age;修改表 people 增加字段 name 长度100 默认为null 备注:姓名 在age字段后面;原创 2021-07-12 15:42:50 · 443 阅读 · 0 评论 -
MaC 修改MySQL密码
20210621 亲测有效MaC 修改MySQL密码1.苹果->系统偏好设置->最下边点mysql 在弹出页面中 关闭mysql服务(点击stop mysql server)2.进入终端输入:cd /usr/local/mysql/bin/回车后 登录管理员权限 sudo su回车后输入以下命令来禁止mysql验证功能 ./mysqld_safe --skip-grant-tables &回车后mysql会自动重启(偏好设置中mysql的状态会变成running)3.输入命原创 2021-06-21 11:40:38 · 355 阅读 · 0 评论 -
MyBatis SQL 批量更新(代码➕案例)
写于20210618 21:00 北京望京借于很多人不会 mybatis 批量更新,特此记录。微信搜:JavaPub ,有疑惑留言。文章目录1.场景2.MyBatis XML3.重点1.场景当我们在做更新或者是插入操作时,数据为多对多、一一对应的情况例如:编号。 名字。 状态1。 tom 02。 jerry. 03。 jeck. 1代码中循环写入、更新这是大多数人做法,但是肯定不是最优解2.MyBatis XML先直接上个终极版这里数据库中存储了原创 2021-06-18 22:00:05 · 659 阅读 · 1 评论 -
慢查询优化方案-SQL篇【JavaPub版】
由于前期的快速开发、敏捷版本迭代,接口响应速度是每一个系统发展到中后期都会面临的一个问题。本系列从实战出发手把手一起对接口响应慢问题做优化。对于慢查询我们一般通过如下思路解决:1. explain sql 分析慢SQL2. 利用缓存3. 读写分离和分库分表4. 评论区补充,待续...本篇是系列文章(以 MySQL 为例),从多个角度分析、解决慢查询,如意犹未尽:微信搜【JavaPub】为了提高查询效率,当数据库表加完索引后还不不能满足性能需求,第二步,SQL 语句优化。系统前期开发阶段,为原创 2021-04-11 22:24:31 · 428 阅读 · 2 评论 -
Mysql decimal(m,d)的说明
有些内容单看文档,记忆不深刻,有容易理解不透下面是一位大佬亲测的数据:(dalao:https://programskills.blog.csdn.net/)create table decimal_test(id int auto_increment PRIMARY key,score decimal(5,2) -- 取值范围是 -999.99 到 999.99); -- 整数的位数必须小于等于m-d,不然报错。小数的位数可以大于d位。多出d位时会做四舍五入,截取到d位。-- 以上均不包原创 2021-03-30 15:04:51 · 488 阅读 · 0 评论 -
【转载一】使用Spring实现读写分离
1 背景我们一般应用对数据库而言都是“读多写少”,也就说对数据库读取数据的压力比较大,有一个思路就是说采用数据库集群的方案,其中一个是主库,负责写入数据,我们称之为:写库;其它都是从库,负责读取数据,我们称之为:读库;2 方案解决读写分离的方案有两种:应用层解决和中间件解决。2.1 应用层解决:优点:多数据源切换方便,由程序自动完成;不需要引入中间件;理论上支持任何数据库;缺点:由程序员完成,运维参与不到;不能做到动态增加数据源;2.2 中间件解决:优点:源原创 2021-03-22 11:17:54 · 351 阅读 · 1 评论 -
【菜鸟版】 Linux 安装 MySql 5.7
写于20210228,文末有惊喜文章目录安装mysql改密码ERROR 1054 (42S22): Unknown column 'password' in 'field list'安装mysql1.创建存放安装包的位置,并且进入该目录命令mkdir /share命令cd /share2.查看系统是否已经安装mysql,两种方法都可以方法一:rpm -qa | grep mysql方法二:yum list installed | grep mysql3.如果存在,则移除以前的mysql原创 2021-02-28 21:50:30 · 1198 阅读 · 0 评论 -
mybatis-xml-常用标签
我是 JavaPub,三观很正,乐于创业,喜欢烹饪。今年已近年中,各位小伙伴一定已经拿到自己心仪的offer,但是不要忘记进步,共勉!pub哥的2020文章清单!原创 2021-01-15 11:04:47 · 363 阅读 · 0 评论 -
求求你不要再用offset和limit了
优化慢SQL技巧阅读大概3分钟文章目录@[toc]前言1. OFFSET和LIMIT有什么问题2. 有什么解决方案再优化前言不再需要担心数据库性能优化的日子已经一去不复返了。随着时代的发展,每个新企业家都希望建立下一个Facebook,并结合收集每个可能的数据点以提供更好的机器学习预测的心态,作为开发人员,我们需要比以往更好地准备我们的API,以提供可靠,高效的端点,应该能够毫不费力地浏览大量数据。如果您已经进行了一段时间的后端或数据库体系结构,则可能已经完成了分页查询,如下所示:但是,如果原创 2021-01-11 20:30:57 · 384 阅读 · 0 评论 -
SQL查询
sql简单函数,记录mysql 查询当天、本周,本月,上一个月的数据文章目录今天昨天近7天近30天本月上一月查询本季度数据查询上季度数据查询本年数据查询上年数据查询当前这周的数据查询上周的数据查询上个月的数据查询当前月份的数据查询距离当前现在6个月的数据今天select * from 表名 where to_days(时间字段名) = to_days(now());栗子:查询当天参加活动人数(DATA data)SELECT count(*) FROM active_partake_sta原创 2020-12-31 16:08:38 · 265 阅读 · 0 评论 -
influxDB使用客户端教程
文章目录使用帮助查看版本启动启动方法二登陆查看数据库切换数据库查看表创建表查询表删除记录删除表删除数据库使用帮助influx --help查看版本influx -version启动influx -config /etc/influxdb/influxdb.conf启动方法二systemctl start influxdb.servicesudosystemctl start influxdb.service登陆influx默认连接到 localhost:8086原创 2020-12-29 11:17:58 · 3550 阅读 · 6 评论 -
MySQL建表异常日志
mysql 建表异常文章目录问题操作环境错误原因解决办法我的方法问题1293 - Incorrect table definition; there can be only one TIMESTAMP column with CURRENT TIMESTAMP in DEFAULT or ON UPDATE clause操作环境这里使用 MySQL5.5.62 版本错误原因在数据库新建了俩个字段,新建时间 和 更新时间 ,都是以当前时间写入(CURRENT_TIMESTAMP)。原创 2020-12-29 10:39:07 · 479 阅读 · 0 评论 -
2020 一张图告诉你SQL使用inner join,left join 等 SQL join
文末有数据库sql文章目录表数据SQL查询inner joinunionunion allleft joinIS NULLright joinis nullFULL OUTER JOINsql文件表数据SQL查询inner join求交集SELECT * FROM user1 a INNER JOIN user2 b ON a.name = b.name;union求并集SELECT * FROM user1 UNION SELECT * FROM user2;unio原创 2020-12-10 17:39:12 · 612 阅读 · 0 评论 -
mysql中utf8、utf8mb4和utf8mb4_unicode_ci、utf8mb4_general_ci
1. utf8、utf8mb4(utf8 most bytes 4)utf8mb4 是 utf8 的超集,能够用四个字节存储更多的字符。在MySQL5.5.3之后 增加了 utfmb4 字符集支持BMP(Basic Multilingual Plane,基本多文种平面)和补充字符最多使用四个字节存储字符标准的UTF-8字符集编码是可以使用1-4个字节去编码21位字符,这几乎包含了世界上所有能看见的语言。**MySQL里面实现的utf8最长使用3个字符,**包含了大多数字符但并不是所有。例如原创 2020-12-10 15:24:21 · 761 阅读 · 0 评论 -
mysql增加删除字段
mysql5.*实例是要在 news 表添加一个 jumpColumn tinyint(3) 字段删除字段ALTER TABLE news DROP COLUMN jumpColumn;添加字段alter table news add jumpColumn tinyint(3) NOT NULL DEFAULT ‘0’ COMMENT ‘是否跳转到栏目’;修改字段ALTER TABLE news MODIFY COLUMN jumpColumn tinyint(3) NO原创 2020-12-09 10:34:55 · 338 阅读 · 0 评论 -
Mysql数据库存储emoji表情 windows版
背景存储 emoji 表情,因为 utf8 不支持,需要修改字符集科普:mysql默认的所占字节数是3个字节的,对于大部分语言来说比如说汉字什么来说是足够的,但是emoji表情有日本文字转化而来,其占了4个字节,所以在存储过程中,mysql就会报上图的错误。方法步骤修改配置文件1. Linux系统找my.cfg文件,在windows系统下找my.ini 。2. 修改以下两处 [mysqld]character-set-server=utf8mb4 [mysql] d.原创 2020-10-16 11:51:04 · 484 阅读 · 0 评论 -
MyBatis——》转义字符(大于,小于,大于等于,小于等于)
原创 2020-09-14 15:35:30 · 433 阅读 · 0 评论 -
MySQL修改操作
修改字段ALTER TABLE tb_article MODIFY COLUMN NAME VARCHAR(50);tb_article 是表名NAME 是字段名原创 2020-08-08 16:10:35 · 280 阅读 · 0 评论 -
mysqldump
mysqldump 条件导出数据mysqldump -h127.0.0.1:3306 -uroot -p123 --database db02 --tables news --where="modifiedTime>'2019-01-01 00:00:00'" >/home/news.sql更多:https://www.cnblogs.com/chenmh/p/5300370.html原创 2020-08-07 14:37:35 · 238 阅读 · 0 评论 -
一张图告诉你SQL使用inner join,left join 等
来源: https://blog.csdn.net/weixin_41796956/article/details/85044152原创 2020-08-07 09:50:19 · 407 阅读 · 0 评论