地表最强菜鸡
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Windows下安装MySQL详细教程
Windows下安装MySQL详细教程 1、安装包下载 2、安装教程 (1)配置环境变量 (2)生成data文件 (3)安装MySQL (4)启动服务 (5)登录MySQL (6)查询用户密码 (7)设置修改用户密码 (8)退出 3、解决问题 1、安装包下载安装包下载地址:https://dev.mysql.com/downloads/mysql/点击下载之后,可以选择注册....原创 2021-11-24 17:15:44 · 916 阅读 · 0 评论 -
数据库隔离级别有哪些,各自的含义是什么,MYSQL默认的隔离级别是是什么。
事例:程序员拿着信用卡去享受生活(卡里当然是只有3.6万),当他埋单时(程序员事务开启),收费系统事先检测到他的卡里有3.6万,就在这个时候!但是发工资时老板不小心按错了数字,按成3.9万/月,该钱已经打到程序员的户口,但是事务还没有提交,就在这时,程序员去查看自己这个月的工资,发现比往常多了3千元,以为涨工资了非常高兴。事例:程序员某一天去消费,花了2千元,然后他的妻子去查看他今天的消费记录(全表扫描FTS,妻子事务开启),看到确实是花了2千元,就在这个时候,程序员花了1万买了一部电脑,即。原创 2021-08-26 10:06:56 · 410 阅读 · 0 评论 -
Mysql 纵表转换为横表
1、数据库的表可以分为两类:纵表与横表纵表:表中字段与字段的值采用key——value形式,即表中定义两个字段,其中一个字段里存放的是字段名称,另一个字段中存放的是这个字段名称代表的字段的值。例如,下面这张project_audit_log表,其中date_type字段表示为什么时间类型,后面的date_value表示这个时间的值横表:所有的字段都在表结构中定义出来。如果把上面表的date_type与date_value字段转换为shelve_date,offShelve_date,adva原创 2021-08-02 14:54:51 · 11733 阅读 · 16 评论 -
Mysql 语句操作索引SQL语句
最近项目中需要新增唯一索引,特此记录便于日后查阅。一、使用ALTER TABLE语句创建索引语法如下:1.PRIMARYKEY(主键索引) mysql>ALTERTABLE`table_name`ADDPRIMARYKEY (`column`)2.UNIQUE(唯一索引) mysql>ALTERTABLE`table_name`ADDUNIQUE (`column` ...原创 2021-07-31 14:53:51 · 3396 阅读 · 0 评论 -
Mysql 拼接多个字段作为查询条件查询方法
最近工作中需要把多个字段拼接作为查询条件查询,特此记录便于日后查阅。<select id="listByProgramCodeList" resultType="com.galanz.iot.content.restapi.model.po.RmProgramPo"> SELECT * FROM ( SELECT p.*, CONCAT_WS('#', p.content_code, p.content_version) mix_content_code原创 2021-07-27 16:45:57 · 5207 阅读 · 0 评论 -
Mysql 重置自增列的开始序号
最近项目中需要重置mysql表的自增序列号,特此记录便于日后查阅。ALTER TABLE TableName AUTO_INCREMENT = 5;注:代表重新从5开始(包括5)到此Mysql 重置自增列的开始序号介绍完成。原创 2021-07-16 16:37:17 · 1243 阅读 · 0 评论 -
Mysql 常见ALTER TABLE操作
删除列alter table table_name drop col_name;增加列(单列)alter table table_name add col_name col_type comment 'xxx';增加列(多列)alter table table_name add col_name col_type comment 'xxx', add col_name col_type(col_length) comment 'xxx';增加表字段并指明字段放置为第一列alter原创 2021-01-14 11:26:09 · 12604 阅读 · 1 评论 -
PostgreSQL(MySQL)插入操作传入值为空则设置默认值
1、mysql写法IFNULL(p1,p2),如果p1有值就是p1,如果p1是空,则值为p2<insert id="insertForeach" parameterType="java.util.List" > insert into user_message ( skip_id ) values <foreach col...原创 2019-12-28 06:13:35 · 5576 阅读 · 3 评论 -
PostgreSQL(MySQL)插入操作遇到唯一值重复时更新
1、mysql写法<insert id="insertOrUpdateNew"> insert into test (a,b,c) values (#{a},#{b},#{c}) on duplicate key update c = values(c)</insert> <inser...原创 2019-12-27 16:08:52 · 3303 阅读 · 0 评论 -
PostgreSQL(MySQL)联合唯一索引存在空值时唯一约束失效
问题:当Mysql中建立的联合索引, 只要索引中的某一列的值为空时(NULL),即便其他的字段完全相同,也不会引起唯一索引冲突。原因:Mysql官方文档中有这样的解释A UNIQUE index creates a constraint such that all values in the index must be distinct. An error occurs if y...原创 2019-12-27 15:52:54 · 2921 阅读 · 2 评论 -
Mysql的分表设计方法 (水平分表和垂直分表)
虽然知识查询分数,但是题目和回答这两个大字段也是要被扫描的,很消耗性能。用户登录的时候,可以将用户的id%100,那么会得到0-99的数,查询表的时候,将表名qq跟取模的数连接起来,就构建了表名。比如用户id为1000086,除以100取模得86,那么就到qq86表查询,查询的时间将会大大缩短。假设QQ的用户有100亿,如果只有一张表,每个用户登录的时候数据库都要从这100亿中查找,会很慢很慢。垂直分割指的是:表的记录并不多,但是字段却很长,表占用空间很大,检索表的时候需要执行大量的IO,严重降低了性能。原创 2019-04-08 11:28:36 · 849 阅读 · 0 评论 -
mysql order by多个字段排序
原文地址:https://blog.youkuaiyun.com/suhiymof/article/details/79962247MySql Order By 多个字段 排序规则比如:如要根据ConfigID和MarketID来排序有如下语句: SELECT * FROM TABLE ORDER BY ConfigID, MarketID DESC;那么结果:分析:其...原创 2019-03-13 09:51:54 · 3363 阅读 · 1 评论 -
Java Mysql工具类封装
最近突然想到在上家公司封装的Mysql工具类没有保存一份,感觉比较可惜,在网上找了一下,找到一个不错的Mysql工具类封装,在这里记录一下,便于日后查阅。文章看着不错,总结比较全面,推荐给大家。原创 2019-06-15 12:45:15 · 3217 阅读 · 3 评论 -
Centos7 Mysql集群主从搭建(包括单机搭建、单机主从搭建)
最近在工作中解决了一些Mysql主从集群相关的问题,本着每周进步一点点的态度将主从集群搭建的完整过程记录下来,特此记录便于日后查阅。一、Mysql简介MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于Oracle旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的RDBMS(Relational Datab...原创 2019-07-07 16:36:13 · 3446 阅读 · 24 评论 -
Ids for this class must be manually assigned before calling save on String ID
Already read lots of questions about the same issue, but I still not be able to solve this problem.I need to have aStringprimary key on my database.import javax.persistence.Entity;import javax...原创 2019-08-02 09:53:04 · 445 阅读 · 0 评论 -
“hibernate_sequence“ does not exist
org.postgresql.util.PSQLException: ERROR: relation "hibernate_sequence" does not exist Position: 17 at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2062)...原创 2019-08-02 09:54:45 · 1625 阅读 · 0 评论 -
MySQL Join算法与调优白皮书(二)
上一篇文章(公众账号回复join可见)收到了老叶的反馈,希望Inside君可以分多次完成对于Join的讲解。其实Inside君已经尽力分多篇文章进行分析。无奈要说清楚Join真的是不太容易,所以有劳各位小伙伴们耐心看完吧。Inside君争取三到四次可以讲完MySQL的Join,最后也会毫不吝啬地放出全文的PDF的下载版本。同时放上Inside君最爱的李宗盛大哥的歌——《山丘》,献给关注I...原创 2018-07-24 16:40:39 · 462 阅读 · 2 评论 -
MYSQL中TINYINT的取值范围
我们先看无符号的情况。无符号的最小值即全部8位(bit)都为0,换算成十进制就是0,所以无符号的Tinyint的最小值为0.无符号的最大值即全部8bit都为1,11111111,换算成十进制就是255.这很好理解。虽然“-0”也是“0”,但根据正、反、补码体系,“-0”的补码和“+0”是不同的,这样就出现两个补码代表一个数值的情况。在MySQL的数据类型中,Tinyint的取值范围是:带符号的范围是-128到127。这就是本文要说的关键地方了,在计算机中,表示负值是用补码(正码、反码、补码的概念见。原创 2019-03-10 17:16:58 · 20594 阅读 · 0 评论 -
Mysql百万级数据查询优化
InnoDB是事务型引擎,支持回滚、崩溃恢复能力、多版本并发控制、ACID事务,支持行级锁定(InnoDB表的行锁不是绝对的,如果在执行一个SQL语句时MySQL不能确定要扫描的范围,InnoDB表同样会锁全表,如like操作时的SQL语句),以及提供与Oracle类型一致的不加锁读取方式。如果你把你的表锁上一段时间,比如30秒钟,那么对于一个有很高访问量的站点来说,这30秒所积累的访问进程/线程,数据库链接,打开的文件数,可能不仅仅会让你泊WEB服务Crash,还可能会让你的整台服务器马上掛了。原创 2018-12-11 15:52:54 · 745 阅读 · 0 评论 -
Mysql报错Packet for query is too large问题解决
修改 my.ini 加上 max_allowed_packet =67108864。修改完成之后要重启mysql服务,如果通过命令行修改就不用重启mysql服务。查看mysql的max_allowed_packet大小,运行。默认大小4194304 也就是4M。批量插入数据量过大,解决办法。命令修改:(即时生效)原创 2018-12-06 19:37:09 · 1788 阅读 · 3 评论 -
MySQL Order By实现原理分析和Filesort优化
在使用explain分析查询的时候利用有序索引获取有序数据显示。而文件排序显示。原创 2018-07-25 09:54:56 · 361 阅读 · 0 评论 -
间隙锁详解
20.3.5 间隙锁(Next-Key锁)《深入浅出MySQL——数据库开发、优化与管理维护》从数据库的基础、开发、优化、管理4方面对MySQL进行了详细的介绍,其中每一部分都独立成篇,每一篇又包括多个章节。本书面向实用,内容覆盖广泛,讲解由浅入深,适合于各个层次的读者。本文介绍了InnoDB锁。20.3.5 间隙锁(Next-Key锁)当我们用范围条件而不是相等条件检索数据,并请求共享或排他锁时...原创 2018-07-13 14:32:16 · 15570 阅读 · 8 评论 -
数据库事务的四大特性以及事务的隔离级别
本篇讲诉数据库中事务的四大特性(ACID),并且将会详细地说明事务的隔离级别。 如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性:⑴ 原子性(Atomicity) 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,这和前面两篇博客介绍事务的功能是一样的概念,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。⑵ 一致性(Consi...原创 2018-07-13 14:18:33 · 218 阅读 · 0 评论 -
MySQL JOIN原理
先看一下实验的两张表:表comments,总行数28856表comments_for,总行数57,comments_id是有索引的,ID列为主键。以上两张表是我们测试的基础,然后看一下索引,comments_for这个表comments_id是有索引的,ID为主键。最近被公司某一开发问道JOIN了MySQL JOIN的问题,细数之下发下我对MySQL JOIN的理解并不是很...原创 2018-07-24 16:41:47 · 560 阅读 · 0 评论 -
MySQL高级配置
参考文章:http://www.jb51.net/article/47419.htm1、配置MySQL的原则(1)一次只改变一个设置!这是测试改变是否有益的唯一方法。大多数配置能在运行时使用SET GLOBAL改变。这是非常便捷的方法它能使你在出问题后快速撤销变更。但是,要永久生效你需要在配置文件里做出改动。(2)一个变更即使重启了MySQL也没起作用?请确定你使用了正确的配...原创 2018-07-24 14:55:27 · 7117 阅读 · 0 评论 -
mysql共享锁与排他锁
mysql锁机制分为表级锁和行级锁,本文就和大家分享一下我对mysql中行级锁中的共享锁与排他锁进行分享交流。共享锁又称为读锁,简称S锁,顾名思义,共享锁就是多个事务对于同一数据可以共享一把锁,都能访问到数据,但是只能读不能修改。排他锁又称为写锁,简称X锁,顾名思义,排他锁就是不能与其他所并存,如一个事务获取了一个数据行的排他锁,其他事务就不能再获取该行的其他锁,包括共享锁和排他锁,但是获...原创 2018-07-23 19:27:20 · 241 阅读 · 0 评论 -
MySQL优化之BTree索引使用规则
MySQL优化之BTree索引使用规则从一道题开始分析:假设某个表有一个联合索引(c1,c2,c3,c4)一下——只能使用该联合索引的c1,c2,c3部分A where c1=x and c2=x and c4>x and c3=xB where c1=x and c2=x and c4=x order by c3C where c1=x and c4= x group by c3,c2D ...原创 2018-07-12 11:04:24 · 675 阅读 · 1 评论 -
mysql explain执行计划详解
1)、id列数字越大越先执行,如果说数字一样大,那么就从上往下依次执行,id列为null的就表是这是一个结果集,不需要使用它来进行查询。2)、select_type列常见的有:A:simple:表示不需要union操作或者不包含子查询的简单select查询。有连接查询时,外层的查询为simple,且只有一个B:primary:一个需要union操作或者含有子查询的select,位于最外层的单位...原创 2018-07-12 10:41:10 · 499 阅读 · 0 评论 -
MySQL slow_query_log慢查询日志配置详解
slow_query_log是记录SQL执行超过一定时间的参数。slow query log相关变量1、命令行参数: --log-slow-queries 指定日志文件存放位置,可以为空,系统会给一个缺省的文件host_name-slow.log2、系统变量 log_slow_queries 指定日志文件存放位置,可以为空,系统会给一个缺省的文件...原创 2018-07-14 08:37:16 · 14793 阅读 · 0 评论 -
解决: ERROR JDBCExceptionReporter:78 - Could not retrieve transation read-only status server
环境:mysql+java+hibernate问题描述:java代码在开始事务后,先做了一个查询,再insert,此时会报: ERROR JDBCExceptionReporter:78 - Could not retrieve transation read-only status server问题解决过程:查看mysql的事物隔离级别...原创 2018-07-21 23:28:14 · 935 阅读 · 0 评论 -
【java】多线程批量拆分List导入数据库
前两天做了一个导入的功能,导入开始的时候非常慢,导入2w条数据要1分多钟,后来一点一点的优化,从直接把list怼进Mysql中,到分配把list导入Mysql中,到多线程把list导入Mysql中。时间是一点一点的变少了。非常的爽,最后变成了10s以内。下面就展示一下过程。原创 2018-12-13 18:16:38 · 945 阅读 · 0 评论 -
mysql添加表注释、字段注释、查看与修改注释
1 创建表的时候写注释create table test1( field_name int comment '字段的注释') comment='表的注释';2 修改表的注释alter table test1 comment '修改后的表的注释';3 修改字段的注释alter table test1 modify column field_name int comment ...原创 2018-12-06 15:21:56 · 1111 阅读 · 0 评论 -
MySql 查询以逗号分隔的字符串的方法(正则)
NND,一点思路都木有,想了老久,突然想到了正则表达式....!这个查询出来是多条数据的,然后再用到了group_concat()函数,OK。想想,妈蛋,这存SQL,肿么给它拆分开呢,难道再循环一下....原创 2018-11-29 20:10:17 · 4117 阅读 · 1 评论 -
MySQL replace函数替换字符串语句的用法(mysql字符串替换)
原文地址:https://www.cnblogs.com/kenshinobiy/p/5822698.htmlMySQL replace函数我们经常用到,下面就为您详细介绍MySQL replace函数的用法,希望对您学习MySQL replace函数方面能有所启迪。最近在研究CMS,在数据转换的时候需要用到mysql的MySQL replace函数,这里简单介绍一下。比如你要将表 t...原创 2018-11-29 20:06:33 · 11843 阅读 · 0 评论 -
Mysql order by与limit混用陷阱
在Mysql中我们常常用order by来进行排序,使用limit来进行分页,当需要先排序后分页时我们往往使用类似的写法select * from 表名 order by 排序字段 limt M,N。但是这种写法却隐藏着较深的使用陷阱。在排序字段有数据重复的情况下,会很容易出现排序结果与预期不一致的问题。比如现在有一张user表,表结构及数据如下:现在想根据创建时间升序查询user...原创 2018-11-02 14:32:42 · 320 阅读 · 1 评论 -
MySQL索引原理以及查询优化
如图所示,如果要查找数据项29,那么首先会把磁盘块1由磁盘加载到内存,此时发生一次IO,在内存中用二分查找确定29在17和35之间,锁定磁盘块1的P2指针,内存时间因为非常短(相比磁盘的IO)可以忽略不计,通过磁盘块1的P2指针的磁盘地址把磁盘块3由磁盘加载到内存,发生第二次IO,29在26和30之间,锁定磁盘块3的P2指针,通过指针加载磁盘块8到内存,发生第三次IO,同时内存中做二分查找找到29,结束查询,总计三次IO。非常关键,尤其是当表中的数据量越来越大时,索引对于性能的影响愈发重要。原创 2018-06-28 09:42:22 · 402 阅读 · 0 评论 -
【MySQL】基于MySQL的SQL优化——对group by以及limit的优化
原文地址:https://blog.youkuaiyun.com/tanglei6636/article/details/52861453group by:通过下面一条 语句来了解有关group by的优化。SELECT a.first_name,a.last_name,COUNT(*) FROM film_actor fa INNER JOIN actor a USING(actor_id) ...原创 2018-06-28 09:44:05 · 560 阅读 · 0 评论 -
SpringBoot:spring boot使用Druid和监控配置
原文来自:http://www.vxzsk.com/407.htmlDruid是Java语言中最好的数据库连接池,并且能够提供强大的监控和扩展功能。Spring Boot默认的数据源是:org.apache.tomcat.jdbc.pool.DataSource业界把 Druid 和 HikariCP 做对比后,虽说 HikariCP 的性能比 Druid 高,但是因为 Druid 包...原创 2018-07-29 10:33:14 · 1279 阅读 · 0 评论 -
MYSQL查询语句优化
mysql的性能优化包罗甚广: 索引优化,查询优化,查询缓存,服务器设置优化,操作系统和硬件优化,应用层面优化(web服务器,缓存)等等。这里的记录的优化技巧更适用于开发人员,都是从网络上收集和自己整理的,主要是查询语句上面的优化,其它层面的优化技巧在此不做记录。查询的开销指标:执行时间 检查的行数 返回的行数建立索引的几个准则:1、合理的建立索引能够加速数据读取效率,不合理的建立索引反而会拖慢数...原创 2018-07-12 10:27:44 · 482 阅读 · 0 评论