
MySQL
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。
y_bccl27
这个作者很懒,什么都没留下…
展开
-
MySQL的常用SQL脚本
1.修改某个字段的定义ALTER TABLE tb_lapi MODIFY COLUMN auto_save_failure_reason VARCHAR(200) COMMENT '失败原因';原创 2021-02-18 09:41:55 · 1057 阅读 · 0 评论 -
MySQL修改主键初始值为1
问题描述:例如我们已经在数据库中建好了一张表,该表中存在主键id并且设置为自动增长类型,由于一次操作,我们在表中插入了一些数据,但是这些数据是错误的,因此我们需要删除这些数据,但是会发现这时的主键ID的取值不是1,而是一个前面这些数据的个数之和的下一位,因此我们需要将该主键id设置为1。表结构如下:CREATE TABLE `user` ( `id` double NOT NULL AUTO_INCREMENT, `tax_data` blob, `tax_vou_no` varcha原创 2021-02-21 16:14:28 · 2276 阅读 · 0 评论 -
SQLyog客户端常用快捷键
选中某条/行数据后,可使用下述快捷键格式化快捷键:F12执行快捷键:F9原创 2021-04-10 23:43:12 · 248 阅读 · 0 评论 -
MySQL中表数据(两表字段相同)进行合并
现有两个表 test_01和test_02,其中test_01有重复数据: 最终方案:删除test01中重复的数据,采用create table select方式从以上过滤完数据的查询结果中创建新表,作为临时表然后把原来的表drop删除,再把临时表重命名为原来的表名: 这样便得到了无重复数据的 test01: 合并test01和test02采用暴力添加数据的方法,这里把test02 表的数据合并到test01表:查看合并后的test01原创 2022-09-24 16:58:30 · 1412 阅读 · 0 评论 -
使用SQLyog导出和导入MySQL数据库
导出数据库:打开SQLyog—>右击你想要导出的数据库—>选择"Backup/Export"—>选择"Backup Database As SQL Dump"弹出对话框—>选择"Structure and data"和保存位置—>最后点击 "Export"导入数据库:打开SQLyog—>点击菜单栏中的"Database"—>选择"Import"—>选择"Restore From SQL Dump"—>选择之前备份的数据库点,击"Execut.原创 2021-03-12 12:01:44 · 1257 阅读 · 0 评论 -
连接MySQL时出现警告Establishing SSL connection without server's identity verification is not recommended.
问题描述:连接MySQL时出现以下警告:WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be ...原创 2019-08-23 17:26:16 · 642 阅读 · 2 评论 -
MySQL5.5.27使用Restore From SQL Dump功能导入数据库表中出现Row size too large
问题描述:MySQL数据库版本为MySQL5.5.27,在使用其Restore From SQL Dump功能导入数据库表时出现以下错误提示Row size too large. The maximum row size for the used table type, not counting BLOBs, is 8126.You have to change some columns to TEXT or BLOBs最后找到了那张导入出错的那张表,发现该表的列字段有200多个,该版本的数据库.原创 2021-03-12 11:51:47 · 266 阅读 · 0 评论 -
本地升级MySQL数据库版本为8.0.23,使用SQLyog(小海豚)无法进行连接
问题描述:本地MySQL版本为5.5.27将其升级到8.0.23后,使用SQLyog(小海豚)进行连接出现以下提示错误:Client does not support authentication protocol requested by server;consider upgrading MySQL client原创 2021-03-12 10:36:53 · 1015 阅读 · 0 评论 -
MySQL使用Navicat导出Excel时数字展示会变成科学计数法
问题描述:MySQL使用Navicat导出Excel时数字会变成科学计数法解决方法:"数据" 类型需要在导出时转成 "字符串" 类型select CONCAT(id,"\t") from test原创 2021-03-25 16:37:45 · 1875 阅读 · 2 评论 -
查看二进制文件,报错 You are not using binary logging
在使用show binary logs; 命令查看二进制文件时报错Query : show binary logsError Code : 1381You are not using binary logging解决方法:使用show variables like'log_bin';发现二进制日志文件并没有开启原创 2021-05-23 10:58:10 · 904 阅读 · 0 评论 -
MySQL 基准测试(mysqlslap)出现 Using a password on the command line interface can be insecure 警告
问题描述:在使用 mysqlslap 进行基准测试时,出现警告mysqlslap: [Warning] Using a password on the command line interface can be insecure.解决方法:不要直接使用mysqlslap --auto-generate-sql -uroot -p密码 进行基准测试,可采用下述方式...原创 2021-05-10 22:34:11 · 341 阅读 · 0 评论 -
MySQL 基准测试(sysbench)工具安装时提示 automake 1.10.x (aclocal) wasn‘t found, exiting
问题描述:在我们安装sysbench 1.0时,使用./autogen.sh命令会报如下错误解决方法:使用下述命令安装automake和libtool依赖yum install automake libtool –y原创 2021-05-16 16:39:53 · 1816 阅读 · 0 评论 -
MySQL中的存储引擎
Archive引擎Archive存储引擎只支持insert和delete操作,会缓存所有的写并利用zlib对插入大行进行压缩,所以比MyISAM表的磁盘I/O更少。但是每次select查询都需要执行全表扫描,所以Archive表适合日志和数据采集类应用。...原创 2022-05-04 10:39:53 · 426 阅读 · 0 评论 -
数据表设计时,字段需要如何选择
数据表设计时,字段需要如何选择原创 2022-05-04 14:18:05 · 1067 阅读 · 0 评论 -
MySQL中tinyint(1)与tinyint(2)的区别
tinyint类型的字段如果不设置UNSIGNED类型,存储的是-128到127的整数。tinyint类型的字段如果设置UNSIGNED类型,存储的是0到255的整数。1个tinyint类型的字段占用一个字节,一个int类型的字段占用四个字节。原创 2022-09-11 14:50:40 · 1640 阅读 · 0 评论 -
MySQL中的int(1)和int(10)有什么区别
可以看到数据插入成功了,接着我们将id字段修改为int(2)、int(10),然后再进行数据测试,会发现其插入值的范围都只能是1~2^31-1,这说明int后面的数字,不影响int本身支持的大小,int(1)、int(2)和int(10)是没有什么区别。我们知道在mysql中 int占4个字节,那么对于无符号的int,最小值为1,最大值是2^32-1 = 4294967295,将近40亿,难道用了int(1),就不能达到这个最大值吗?id字段为无符号的int(1),我来插入一个最大值看看。.........原创 2022-08-16 10:19:48 · 168 阅读 · 0 评论 -
MySQL中用什么数据类型存IP地址
IPv4地址点分十进制和无符号整数的相互转换原创 2023-08-12 12:28:07 · 969 阅读 · 0 评论 -
MySQL中的date、timestamp、datetime类型
datetime对应Java中的java.util.date。原创 2021-03-09 14:04:49 · 14838 阅读 · 0 评论 -
MySQL中的索引使用
使用alter table语句创建索引:适用于数据库表已经创建完毕ALTER TABLE 表名 ADD 索引类型 (unique,primary key,fulltext,index)[索引名](字段名)删除索引drop index index_name on table_name ;原创 2021-03-09 14:19:42 · 139 阅读 · 0 评论 -
MySQL中的执行计划(explain)
id:ID列中的数据为一组数字,表示执行select语句的顺序。ID值相同时,执行顺序由上至下。ID值越大优先级越高,越先被执行。原创 2021-04-05 18:23:13 · 252 阅读 · 0 评论 -
MySQL中的调度器
MySQL中的事件调度器是MySQL 5.1版本才新增的功能,可以将数据库按照规定的时间周期对数据库做增加、删除、修改等操作。1.MySQL中查看数据库版本的命令:SELECT VERSION();2.数据库中的事件调度器默认是关闭,因此我们可以使用使用以下命令来开启或者关闭调度器,ON表示开启,OFF表示关闭SET GLOBAL event_scheduler = ON;3.查询全局Event Scheduler(事件调度器)的开启状态SHOW VARIABLES LIKE.原创 2020-09-12 15:58:39 · 368 阅读 · 0 评论 -
MySQL实时获取有性能问题的SQL
最简单的方法就是通过information_schema库中的processlist表进行查看SELECT id,USER,HOST,db,command,TIME,state,info FROM information_schema.PROCESSLIST WHERE TIME>=60;原创 2021-04-17 17:43:55 · 206 阅读 · 0 评论 -
MySQL分区间进行数据统计
假设当前数据库mc_userdb,其中有customer_login(用户登陆表)CREATE DATABASE `mc_userdb`;USE `mc_userdb`;DROP TABLE IF EXISTS `customer_login`;CREATE TABLE `customer_login` ( `customer_id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '用户ID', `login_name` VARCHA原创 2021-04-11 12:54:28 · 676 阅读 · 0 评论 -
MySQL删除重复数据实例
CREATE TABLE `product_comment` ( `comment_id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '评论ID', `product_id` INT(10) UNSIGNED NOT NULL COMMENT '商品ID', `order_id` BIGINT(20) UNSIGNED NOT NULL COMMENT '订单ID', `customer_id` INT(10) UNSIGNED NO.原创 2021-04-11 10:59:17 · 137 阅读 · 0 评论 -
MySQL查看最大连接数和数据库连接
1.查看MySQL的可以承受的最大连接数, 登录到MySQL服务器后,输入以下命令,如出现下面的页面显示:show variables like '%max_connections%';max_connections:表示的是服务器所能承受的最大连接数,用来设置最大连接(用户)数。总体来说,该max_connections参数在服务器资源够用的情况下应该尽量设置大,以满...原创 2019-09-12 17:52:37 · 20461 阅读 · 0 评论 -
MySQL表优化策略
1.索引列不能使用表达式或者函数 错误示例:select ...... from product where to_days(out_date)-to_days(current_date)<=30;-- to_days:函数-- out_date:索引列正确示例:select ...... from product where out_date<=date_add(current_date,interval 30 day)-- out_date:索引列...原创 2021-03-27 20:51:50 · 146 阅读 · 0 评论 -
MySQL数据库开发的 36 条军规
MySQL数据库开发的36条军规:总是在灾难发生后,才想起容灾的重要性;总是在吃过亏后,才记得曾经有人提醒过。原创 2023-03-05 13:17:35 · 652 阅读 · 0 评论 -
MySQL中事务的基本特性、脏读、不可重复读、幻读以及隔离级别
-- 查看数据库的隔离级别SELECT @@GLOBAL.tx_isolation,@@tx_isolation;原创 2020-09-27 23:36:26 · 228 阅读 · 0 评论 -
MySQL中的Innodb存储引擎是如何实现事务
5、如果事务提交成功,那么则把Redo Log对象进行持久化,后续还有其它机制将Buffer Pool中所修改的数据页持久化到磁盘中。1、Innodb在收到一个update语句后,首先会根据条件找到数据所在的页,并将该页缓存到Buffer Pool中。3、针对update语句生成一个Redo Log对象,并将Redo Log对象存入到Log Buffer(2、执行update语句,修改Buffer Pool中的数据,也就是内存中的数据。4、针对update语句生成Undo Log日志,用于事务回滚。原创 2022-05-06 22:48:00 · 286 阅读 · 0 评论 -
MySQL中的MVCC机制
MVCC全称Multi-Version Concurrency Control,即多版本并发控制,主要是为了提高数据库的并发性能。同一行数据平时发生读写请求时,会上锁阻塞住。但mvcc用更好的方式去处理读写请求,做到在发生读写请求冲突时不用加锁。原创 2022-04-16 16:56:18 · 300 阅读 · 0 评论 -
MySQL索引相关问题
1. 什么是最左前缀原则?以下回答全部是基于MySQL的InnoDB引擎例如对于下面这一张表如果我们按照 name 字段来建立索引的话,采用B+树的结构,大概的索引结构如下如果我们要进行模糊查找,查找name 以“张"开头的所有人的ID,即 sql 语句为selectIDfromtablewherenamelike'张%';由于在B+树结构的索引中,索引项是按照索引定义里面出现的字段顺序排序的,索引在查找的时候,可以快速定位到 ID 为 100的张一...原创 2022-03-07 13:01:59 · 106 阅读 · 0 评论 -
MySQL中的锁
基于锁的属性分类:共享锁、排它锁基于锁的粒度分类:行级锁(InnoDB)、表级锁(InnoDB、MyISAM)、页级锁、记录锁、间隙锁、临键锁基于锁的状态分类:意向共享锁、意向排它锁1.共享锁(Share Lock)共享锁又称读锁,简称S锁:当一个事务为某行数据加上读锁之后,其它事务只能对数据加读锁,而不能对数据加写锁,直到所有的读锁释放之后其它事务才能对其进行加持写锁。共享锁的特性主要是为了支持并发的读取数据,读取数据的时候不支持修改,避免出现重复读的问题。2.排它锁(exclusiv原创 2022-05-08 21:55:05 · 139 阅读 · 0 评论 -
MySQL中的共享锁(lock in share mode)和排它锁(for update)
数据库中新建一张表user:CREATE TABLE `test_user` ( `id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '主键ID', `name` VARCHAR(2) NOT NULL COMMENT '姓名', `age` INT(11) NOT NULL COMMENT '年龄', PRIMARY KEY (`id`)) ENGINE=INNODB DEFAULT CHARSET=utf8;往user表中插入两行数据:原创 2022-05-09 22:28:15 · 1111 阅读 · 0 评论 -
MySQL抛出 Lock wait timeout exceeded; try restarting transaction
问题描述:在MySQL中使用手动提交事务时,出现了Lock wait timeout exceeded; try restarting transaction 错误解决方法:LOCK WAIT timeout exceeded; try restarting TRANSACTION异常的错误提示是因为有数据行被锁住了。我们可以通过到information_schema 中来进行查找被锁的语句解释:information_schema这张数据表保存了MySQL服务器所有数据库的信息。如数据库名.原创 2022-04-17 19:02:40 · 1228 阅读 · 0 评论 -
MySQL集群相关问题
1. 数据库主从概念、优点、用途主从数据库是什么意思呢,主是主库的意思,从是从库的意思。数据库主库对外提供读写的操作,从库对外提供读的操作。数据库为什么需要主从架构呢?1.高可用,实时灾备,用于故障切换。比如主库挂了,可以切从库2.读写分离,提供查询服务,减少主库压力,提升性能3.备份数据,避免影响业务2. 数据库主从复制原理主从复制原理,简言之,分三步曲进行: 主数据库有个bin log二进制文件,纪录了所有增删改SQL语句。(binlog线程) 从数据库把原创 2022-05-03 16:17:51 · 134 阅读 · 0 评论 -
MySQL分库分表解决方案
关系型数据库本身比较容易成为系统瓶颈,单机存储容量、连接数、处理能力都有限。当单表的数据量达到1000W或100G以后,由于查询维度较多,即使添加从库、优化索引,做很多操作时性能仍下降严重。此时就要考虑对其进行切分了,切分的目的就在于减少数据库的负担,缩短查询时间。原创 2022-11-05 21:23:49 · 2755 阅读 · 0 评论 -
MySQL多线程完成10万条数据插入数据库
package com.eshore.util;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.SQLException;import java.util.Date;public class Threadtest e...原创 2019-06-14 15:59:00 · 5915 阅读 · 0 评论 -
MySQL分库分表后,如何做到永不迁移数据和避免热点问题?
MySQL分库分表后,如何做到永不迁移数据和避免热点。原创 2022-11-05 22:44:14 · 294 阅读 · 0 评论 -
MySQL中的分库分表框架-ShardingSphere
ShardingSphere,大家多少都有听过吧,Apache顶级项目,国内大佬的巨作,Java中用的最多的一个分库分表框架,如果你们的系统中需要分库分表,强烈建议使用,完全可以满足你的所有需求。原创 2022-11-07 21:49:40 · 1339 阅读 · 0 评论 -
MySQL中的DATE_SUB()函数和DATE_ADD()函数
DATE_SUB() :从日期减去指定的时间间隔,返回的是一个字符串SELECT DATE_SUB(NOW(), INTERVAL 1 MONTH) FROM DUAL;输出结果:2021-03-05 14:07:17原创 2021-04-06 14:11:20 · 2098 阅读 · 0 评论