![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
MySQL
文章平均质量分 51
那些年的代码
Java工作者
展开
-
mysql 批量插入受参数配置限制的解决 max_allowed_packet
mysql根据配置文件会限制server接受的数据包一般指单条大小。有时候大的插入和更新会受max_allowed_packet 参数限制,在复制时候也会受到影响,导致写入或者更新失败;可以通过更改mysql服务器max_allowed_packet配置项来更改此值mysql>show variableslike '%max_allowed_packet%';+--------------------------+------------+| Variable_name ...原创 2021-03-22 19:25:03 · 574 阅读 · 0 评论 -
window的mysql开机自动启动
问题:安装完MySQL后,虽然在“计算机--管理-服务”中,MySQL服务设置了“自动”,但是每次需要用到数据库,还是需要我去手动打开MySQL服务。解决办法:1.以管理员的身份打开cmd命令窗口2.切换到mysql的bin目录下3.输入 mysqld -nt --install ,再回车4.系统会提示 Service successfully installed.5.打开“计算机--管理-服务”6.查看MySQL服务,确保启动类型为“自动”7.开机重启,连接数据库原创 2021-03-18 15:20:18 · 5596 阅读 · 0 评论 -
什么是聚集索引,非聚集索引,索引覆盖,回表,索引下推
聚集索引我们先建如下的一张表CREATE TABLE `student` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '学号', `name` varchar(10) NOT NULL COMMENT '学生姓名', `age` int(11) NOT NULL COMMENT '学生年龄', PRIMARY KEY (`id`), KEY `idx_name` (`name`)) ENGINE=InnoDB;1234567原创 2021-03-17 19:10:08 · 227 阅读 · 0 评论 -
车主帮和作业帮的面试总结(以后博客和公众号一起同步)
https://mp.weixin.qq.com/s/7XxeIM1Zqx_tKPNVf1.gcroot有哪些?a.虚拟机栈(栈桢中的本地变量表)中的引用的对象b.方法区中的类静态属性引用的对象c.方法区中的常量引用的对象d.本地方法栈中JNI的引用的对象2.full gc,Minorgc区别?Gc触发条件:系统调用system.gc();当年轻代需要回收时会触发Minor GC(也称作Young GC)。年轻代由Eden Space和两块相同大小的Su...原创 2021-01-19 22:39:36 · 183 阅读 · 0 评论 -
mysql的安装参考
https://blog.csdn.net/qq_37598011/article/details/93489404https://blog.csdn.net/weixin_38003389/article/details/90696337https://www.cnblogs.com/fanshudada/p/9781794.html原创 2020-06-30 11:26:03 · 121 阅读 · 0 评论 -
service mysql启动失败unit not found
想利用 service mysql start 启动mysql数据库,但是发现出现错误:Failed to start mysql.service: Unit not found.1、查询/etc/init.d/下是否存在mysqlll /etc/init.d/ | grep mysql发现该目录下并没有mysql的文件,若存在,请备份一下2、查询mysql.serverfind / -name mysql.servermysql.server一般在你安装的mysql原创 2020-06-30 10:09:08 · 6926 阅读 · 2 评论 -
dual表的用途介绍
https://www.cnblogs.com/monengji/p/11058242.htmlhttps://blog.csdn.net/z_atmosphere/article/details/82625058原创 2020-05-18 16:19:03 · 142 阅读 · 0 评论 -
mysql出现(using password:YES)
我用到的数据库是mysql8环境是centos7关闭mysql服务service mysqld stop修改mysql为免密码登陆vi /etc/my.cof在最下面加上skip-grant-tables启动mysql服务,并登陆service mysqld startmysql -u root -p密码为空,直接回车查看mysql的用户及密码use mysql;select host, user, authentication_string, plug.原创 2020-05-13 16:59:07 · 4808 阅读 · 0 评论 -
连接mysql出现错误:Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.soc
1、先通过:service mysqld status 查看mysql是否启动 (没装mysql service 也可通过/etc/rc.d/init.d/mysqld status查看) 若没启动,则启动mysql:service mysqld start2、方法: 修改/etc/my.conf:[mysqld]datadir=/usr/local/mysql/datasocket=/var/lib/mysql/mysql.sock[mysql.se...原创 2020-05-13 16:58:24 · 2750 阅读 · 0 评论 -
SQL题:一个表中的ID字段是可以重复的,把该表中有重复ID值的记录查出来,并显示共有多少条记录数。
select count(c.channel_name),c.channel_name from channel c GROUP BY c.channel_name HAVING count(c.channel_name)!=1原创 2020-04-27 08:09:40 · 871 阅读 · 0 评论 -
联合索引
联合索引是什么对多个字段同时建立的索引(有顺序,ABC,ACB是完全不同的两种联合索引。)为什么要用以联合索引(a,b,c)为例建立这样的索引相当于建立了索引a、ab、abc三个索引。一个索引顶三个索引当然是好事,毕竟每多一个索引,都会增加写操作的开销和磁盘空间的开销。覆盖(动词)索引。同样的有联合索引(a,b,c),如果有如下的sql: select a,b,c from tab...原创 2020-04-17 08:01:40 · 202 阅读 · 0 评论 -
多个单列索引和联合索引的区别详解
参考地址https://blog.csdn.net/Abysscarry/article/details/80792876背景:为了提高数据库效率,建索引是家常便饭;那么当查询条件为2个及以上时,我们是创建多个单列索引还是创建一个联合索引好呢?他们之间的区别是什么?哪个效率高呢?我在这里详细测试分析下。一、联合索引测试注:Mysql版本为 5.7.20创建测试表(表记录数为63188...原创 2020-04-17 07:50:29 · 107 阅读 · 0 评论 -
要想深入理解mysql索引?这16个点你必须要了解!
前言MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。打个比方,如果合理的设计且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的MySQL就是一个人力三轮车。拿汉语字典的目录页(索引)打比方,我们可以按拼音、笔画、偏旁部首等排序的目录(索引)快速查找到需要的字。索引分单列索引和组合索引。单列索引,即一个索引只包含单个列,一...原创 2020-04-14 07:48:02 · 107 阅读 · 0 评论 -
mysql-覆盖索引
什么叫做覆盖索引? 在了解覆盖索引之前我们先大概了解一下什么是聚集索引(主键索引)和辅助索引(二级索引) 聚集索引(主键索引): 聚集索引就是按照每张表的主键构造一颗B+树,同时叶子节点中存放的即为整张表的记录数据。 聚集索引的叶子节点称为数据页,聚集索引的这个特性决定了索引组织表中的数据也是索引的一部分。 ...原创 2020-04-13 16:00:50 · 186 阅读 · 0 评论 -
mysql use index、ignore index、force index用法
原创你去了哪里 最后发布于2019-10-18 14:05:48 阅读数 121 收藏展开1:use index:在你查询语句表名的后面,添加use index来提供你希望mysql去参考的索引列表,就可以让mysql不再考虑其他可用的索引。如:select * from table use index(name,age);2:IGNORE INDEX 提示会禁止查询优化器使用指定的索...原创 2020-04-13 11:35:50 · 1509 阅读 · 0 评论 -
Type handler was null on parameter mapping for property 'products'. It was either not specified and/
问题总结:数据库用的是postgresql,orm用的是mybatis, mybatis在处理映射的时候,当出现灭有匹配的类型,而你也没有指定其“jdbcType = OTHER”时,会出现标题的错误修改前修改后:...原创 2020-04-09 19:06:12 · 10596 阅读 · 0 评论 -
MySQL使用可重复读作为默认隔离级别的原因
https://blog.csdn.net/shudaqi2010/article/details/79958222原创 2020-03-28 18:47:28 · 152 阅读 · 0 评论 -
MySql的读写分离
数据量增多,单机的数据库不足以支撑业务,需要用到数据库集群。而读写分离,就是将数据库的读和写分离,对应到数据库一般就是主从数据库,一主一从或者一主多从;业务服务器把数据写到主数据库中,读操作都去从库读;主库会同步数据到从库,保证数据的一致性。 主从集群 这种集群方式,就是将访问的压力从主库转移到从库,单机的数据库不能支撑并发读写的时候,而且读的请求很多的情况下就适合...原创 2020-03-18 08:34:37 · 159 阅读 · 0 评论 -
MYSQL的读写分离主从延时问题
如何实现 MySQL 的读写分离?其实很简单,就是基于主从复制架构,简单来说,就搞一个主库,挂多个从库,然后我们就单单只是写主库,然后主库会自动把数据给同步到从库上去。MySQL 主从复制原理的是啥?主库将变更写入 binlog 日志,然后从库连接到主库之后,从库有一个 IO 线程,将主库的 binlog 日志拷贝到自己本地,写入一个 relay 中继日志中。接着从库中有一个 SQL ...原创 2020-03-17 18:02:50 · 179 阅读 · 0 评论 -
MYSQL的读写分离
数据量增多,单机的数据库不足以支撑业务,需要用到数据库集群。而读写分离,就是将数据库的读和写分离,对应到数据库一般就是主从数据库,一主一从或者一主多从;业务服务器把数据写到主数据库中,读操作都去从库读;主库会同步数据到从库,保证数据的一致性。 主从集群 这种集群方式,就是将访问的压力从主库转移到从库,单机的数据库不能支撑并发读写的时候,而且读的请求很多的情况下就适...原创 2020-03-17 18:02:16 · 144 阅读 · 0 评论 -
索引使用时的注意事项
什么时候使用索引(When should it be used?)鉴于创建索引需要额外的磁盘空间(上面的例子需要额外的277778个磁盘块),以及太多的索引会导致文件系统大小限制所产生的问题,所以对哪些字段建立索引,什么情况下使用索引,需要审慎考虑。由于索引只是用来加速数据查询,那么显然对只是用来输出的字段建立索引会浪费磁盘空间以及发生插入、删除操作时的处理时间,所以这种情况下应该尽量避免。...原创 2020-03-17 11:42:16 · 328 阅读 · 0 评论 -
mybatis是如何防止SQL注入的
SQL注入是一种很简单的攻击手段,但直到今天仍然十分常见。究其原因不外乎:No patch for stupid。为什么这么说,下面就以JAVA为例进行说明:假设数据库中存在这样的表:table user(id varchar(20) PRIMARY KEY , name varchar(20) ,age varc...原创 2020-03-17 09:06:53 · 237 阅读 · 0 评论 -
当使用mybatis时怎么防止sql注入
SQL注入是一种代码注入技术,用于攻击数据驱动的应用,恶意的SQL语句被插入到执行的实体字段中(例如,为了转储数据库内容给攻击者)。[摘自]SQL injection - WikipediaSQL注入,大家都不陌生,是一种常见的攻击方式。攻击者在界面的表单信息或URL上输入一些奇怪的SQL片段(例如“or ‘1’=’1’”这样的语句),有可能入侵参数检验不足的应用程序。所以,在我们的应...原创 2020-03-17 08:46:45 · 435 阅读 · 0 评论 -
MySQL索引-B+树(看完你就明白了)
索引是一种数据结构,用于帮助我们在大量数据中快速定位到我们想要查找的数据。索引最形象的比喻就是图书的目录了。注意这里的大量,数据量大了索引才显得有意义,如果我想要在 [1,2,3,4] 中找到 4 这个数据,直接对全数据检索也很快,没有必要费力气建索引再去查找。索引在 MySQL 数据库中分三类:B+ 树索引 Hash 索引 全文索引我们今天要介绍的是工作开发中最常接触到的 Inn...原创 2019-12-24 11:32:04 · 75 阅读 · 0 评论 -
mysql的动态sql语句实现变量表名
mysql在存储过程中是不支持直接使用变量名作为表名或者是列名的,而在实际的应用中确实会用到变表名或者变量名的情况,如数据量很大的时候就会用到分表。通过在网上查了mysql 5.1以上的版本提供了prepare语句用于支持这种操作。参考http://jonllen.iteye.com/blog/370343上面的例子,完成了变表名并且查询结果赋值给变量的存储过程。实例代码如下:...原创 2019-12-22 17:37:26 · 1968 阅读 · 0 评论 -
mysql的动态表名
create EVENT createMtpulseTableON SCHEDULE every 1 month STARTS CURRENT_TIMESTAMPDOCALL pro_createTable();CREATE PROCEDURE pro_createTable()BEGINDECLARE str VARCHAR(500);-- set @str='create ...原创 2019-12-22 17:36:51 · 1481 阅读 · 0 评论 -
mysql 存储过程 动态表名
今天写存储过程时,遇到要将表名最为参数的问题,如果不涉及到游标的话,使用prepare可以解决问题,但是,动态表名要运用在游标中的话,则prepare就得靠边站了。集众人之智慧,最后,使用临时表解决了问题。如何在MySQL的存储过程中实现把过程参数用在游标定义的SELECT命令里面作为表名引用首先,我们来把场景描绘一下,比如下面的例子(当然是无法正确运行的): ...原创 2019-12-22 17:36:10 · 277 阅读 · 0 评论 -
mysql 遍历所有表并条件查询
use eepm_push;DROPPROCEDUREIF EXISTS FountTable;delimiter $$createprocedureFountTable()begindeclareTableNamevarchar(64);DECLAREcur_FountTableCURSORFORSELECTTAB...原创 2019-12-22 17:33:32 · 929 阅读 · 0 评论 -
mysql 存储过程 REPEAT ... UNTIL ... END REPEAT
begindeclarebint;declareuse_novarchar(10);declareuse_namevarchar(400);declarecard_idvarchar(400);declarecountint;declarecur_1cursorfor...原创 2019-12-22 17:33:01 · 659 阅读 · 0 评论 -
mysql下sql语句令某字段值等于原值加上一个字符串
MYSQL在一个字段值后面加字符串,如下: member 表名 card 字段名 update member SET card = '00' || card; (postgreSQL 用 || 来连贯字符串) MySQL连贯字符串不能利用加号(+),而利用concat。 比方在aa表的name字段前加字符'x',利用: update aa set name=concat('...原创 2019-12-22 17:28:57 · 624 阅读 · 0 评论 -
深入理解数据库索引采用B树和B+树的原因
前面几篇关于数据库底层磁盘文件读取,数据库索引实现细节进行了深入的研究,但是没有串联起来的讲解为什么数据库索引会采用B树和B+树而不是其他的数据结构,例如平衡二叉树、链表等,因此,本文打算从数据库文件存储以及读取说起,讲解数据库索引的由来。 我们以抛出问题的形式开始讲解:(1)数据库文件存储的方式 数据库文件存储都是以磁盘文件存储在系统中的,这也是数据库能持久化存储数据的...原创 2019-12-20 14:59:29 · 157 阅读 · 0 评论 -
mysql 为啥用b+ 树
原因就是为了减少磁盘io次数,因为b+树所有最终的子节点都能在叶子节点里找见,所以非叶子节点只需要存`索引范围和指向下一级索引(或者叶子节点)的地址` 就行了,不需要存整行的数据,所以占用空间非常小,直到找到叶子节点才加载进来整行的数据。B树非叶子节点也会存数据,所以不适合mysql(以后研究下mongo为啥用b树 再补充)B+树适合作为数据库的基础结构,完全是因为计算机的内存-机...原创 2019-12-20 14:49:50 · 572 阅读 · 0 评论 -
为什么MySQL数据库索引选择使用B+树?
在进一步分析为什么MySQL数据库索引选择使用B+树之前,我相信很多小伙伴对数据结构中的树还是有些许模糊的,因此我们由浅入深一步步探讨树的演进过程,在一步步引出B树以及为什么MySQL数据库索引选择使用B+树!学过数据结构的一般对最基础的树都有所认识,因此我们就从与我们主题更为相近的二叉查找树开始。一、二叉查找树(1)二叉树简介:二叉查找树也称为有序二叉查找树,满足二叉查找树的...原创 2019-12-19 17:53:42 · 60 阅读 · 0 评论 -
MySQL_执行计划详细说明
阅读目录(Content)1 简要说明 2SELECT_TYPE 2 TYPE 3 ref 4 extra 回到顶部(go to top)1 简要说明 id 表格查询的顺序编号。 降序查看,id相同的从上到下查查看。 id可以为null ,当table为( union ,m,n )类型的时...原创 2019-12-10 17:04:53 · 88 阅读 · 0 评论 -
MySQL 执行计划详解
MySQL 原理篇MySQL 索引机制MySQL 体系结构及存储引擎MySQL 语句执行过程详解MySQL 执行计划详解MySQL InnoDB 缓冲池MySQL InnoDB 事务MySQL InnoDB 锁MySQL InnoDB MVCCMySQL InnoDB 实现高并发原理MySQL InnoDB 快照读在RR和RC下有何差异我们经常使用 My...原创 2019-12-10 17:03:41 · 65 阅读 · 0 评论 -
MySql的执行计划
一。什么是数据库执行计划: MySQL执行计划是sql语句经过查询优化器后,查询优化器会根据用户的sql语句所包含的字段和内容数量等统计信息,选择出一个执行效率最优(MySQL系统认为最优)的执行计划,然后根据执行计划,调用存储引擎提供的接口,获取数据。执行计划,简单的来说,是SQL在数据库中执行时的表现情况,通常用于SQL性能分析,优化等场景。二。执行计划的查看方法: ...原创 2019-12-10 17:01:59 · 76 阅读 · 0 评论 -
Mybatis批处理(批量查询,更新,插入)
mybatis批量查询注意这里的in和 <trimprefix="("suffix=")"> 以及in ( )的三种方式的(例1(推荐),例2,例3(推荐))等价使用例1: 1 List<UBaseMenu> findMenuName(List<String> valueList); ...原创 2019-12-25 15:26:22 · 290 阅读 · 0 评论 -
数据库设计三大范式
数据库设计范式什么是范式:简言之就是,数据库设计对数据的存储性能,还有开发人员对数据的操作都有莫大的关系。所以建立科学的,规范的的数据库是需要满足一些规范的来优化数据数据存储方式。在关系型数据库中这些规范就可以称为范式。什么是三大范式:第一范式:当关系模式R的所有属性都不能在分解为更基本的数据单位时,称R是满足第一范式的,简记为1NF。满足第一范式是关系模式规范化的最低要求,否...原创 2020-03-18 08:38:05 · 81 阅读 · 0 评论 -
数据库优化设计(非常实用)
非常实用的数据库设计优化,拿来与大家分享;静下心来慢慢体会,当你真正用到的时候便会豁然开朗;学无止境、继续前行!1一、树型关系的数据表不少程序员在进行数据库设计的时候都遇到过树型关系的数据,例如常见的类别表,即一个大类,下面有若干个子类,某些子类又有子类这样的情况。当类别不确定,用户希望可以在任意类别下添加新的子类,或者删除某个类别和其下的所有子类,而且预计以后其数量会逐步增长,此时...原创 2019-12-09 10:25:20 · 198 阅读 · 0 评论 -
数据库设计优化
物理设计:物理设计要做什么? 选择合适的数据库管理系统。 考虑因素:成本,业务场景,开发语言,功能,操作系统等。 数据库类型 成本 开发语言 支持系统 业务场景 Oracle 商业型 php,java,python等 windows/liunx系统 企业级 SQLServer 商业型 .NET,C#...原创 2019-12-08 10:09:56 · 73 阅读 · 0 评论