语法: insert into 表名(字段1,字段2,字段3,...,字段n) values(值1,值2,值3,...,值n);
背景 将测试环境的表同步到另外一个数据库服务器中,但有些表里面数据巨大,(其实不同步该表的数据就行,当时没想太多),几千万的数据!! 步骤 1....查看当前的事物 #当前运行的所有事务 mysql> SELECT * FROM information_schema.INNODB_TRX; #当前出现的锁 mysql> SELECT * FROM...50s,就是说50s后就会报错,所以需要修改下个时间 mysql的配置一般都是在my.cnf文件中,自己找下 新增/修改innodb_lock_wait_timeout=500既可 6....修改后重启mysql,这里面又涉及到mysql的关闭 bin/mysqladmin -uroot -p shutdown 就关闭了sql的,不建议直接kill -9 ,不知道会出现什么幺蛾子 重启的话,...还是用mysql_safe去启动既可 7.
在 mysql 上执行了一句 drop database 半天没有完成,详细的慢查询日志如下,那当时MySQL 在做什么呢?...如果我们从 linux 内核层面看,还是可以发现 mysql 这个时候在执行哪些函数的;从而达到更加细粒度的确认 MySQL 在做什么,进而回答 drop database 为什么慢。...可以看到在删库时调用的是 mysql_rm_db 这个函数,而这个函数又调用了 mysql_rm_table_no_locks 函数,mysql_rm_table_no_locks 会去清理数据字典。...那删库为什么会慢呢?回答这个问题还需要更加深入地分析才行。 ---- OFF-CPU 如果一个进程所依赖的所有资源都已经准备好,那它就可以被调度到 cpu 上执行。...我在分析清理文件的时候发现 vfs 并没有 rm_file 这样的 API ,而是采用“以写代删” 的方式来完成删除操作; 也就是说操作系统并不直接去删除文件,而是把文件系统里面对应的 inode 标记为
binlog的格式 MySQL有好3种格式记录binlog,具体的格式取决于MySQL数据库的版本。...binlog的参数 log_bin:是否开启binlog,MySQL8.0之前默认是关闭的,之后默认是开启的。...如果当前binlog文件超过最大值,MySQL会关闭当前binlog文件并重新打开一个并写入。...首先,找到MySQL安装路径下的bin目录,然后进入命令行,我使用的是Windows系统,其他系统类似。...参考: ❝https://dev.mysql.com/doc/refman/5.7/en/binary-log.html https://baike.baidu.com/item/Mysql%20Binlog
在工业监控里面,需要对每天的数据,进行记录,时间长了之后,MySQL数据库很容易撑爆。这时候,如果允许可以对之前的数据进行一次清除,只记录几个月内的数据。...repeat循环*/ UNTIL done END REPEAT; /*关闭游标*/ close g_cursor; select 'OK'; end $ delimiter; 在MySQL...在不能发后台包的情况下, 可以通过mysql定时任务和存储过程, 来实现定时删表操作。...*注: 以上操作,不推荐在MySQL中通过定时任务和存储过程来实现此功能,推荐通过后台定时任务执行删表操作。
关于用户创建的文章,之前写过几篇《MySQL创建用户提示1396》《小白学习MySQL - 不同版本创建用户的些许区别》。 碰巧看到技术社群的这篇文章《同样是删用户,为啥还有差别?》...在MySQL当中,对于删除用户的操作大家并不陌生,先来看看问题, # 创建用户testuser01 mysql> create user 'testuser01'@'%' identified by '...接着往下看, # 再次删除用户testuser01 mysql> delete from mysql.user where user = 'testuser01'; Query OK, 1 row affected...mysql> flush privileges; Query OK, 0 rows affected (0.01 sec) # 创建用户testuser01成功 mysql> create user '...分析 还是回到这条语句上,这条语句是创建一个用户'testuser01'@'%',在MySQL当中,这条语句在执行器执行时,大致上看成对mysql库的user表插入一条记录,既然是表,大可以先查查看,
,想当然的把where写成了and,然后还没有发现问题,最终执行的结果就是整张表的state的值变成了0,这张表一共有5千多万条数据,造成了一段时间的锁表,导致线上停了一个多小时,直到服务器报警我们才收到通知...然后编写脚本,根据id一一对应的把state字段的数据修改过来,故障期间造成了一些数据的丢失,不过好在不多,只能根据他们的反馈然后把数据补上 最后,经过分析可以知道,开头提到的写法本身就是错误的,但是mysql
但是,如果每次删库都跑路的话,怕是再也不好找工作了吧!所以,删库跑路不是上上策。 1、前言 数据恢复的前提的做好备份,且开启 binlog,格式为 row。...mysql_log/mysql_test/mysql-bin.000032 > backup_inc.sql [mysql@mysql-test-83 ~]$ tail -n 20 backup_inc.sql...@mysql-test ~]$ mysql -S /tmp/mysql.sock < backup.sql # 应用增量日志 [mysql@mysql-test ~]$ mysql -S /tmp/...@mysql-test ~]$ mysql -S /tmp/mysql.sock < backup_inc_1.sql [mysql@mysql-test ~]$ mysql -S /tmp/mysql.sock...限制: binlog 格式必须为 row,且 binlog_row_image=full; 仅支持5.6与5.7; 只能回滚 DML(增、删、改)。
/mysql_test/mysql-bin.000032 > backup_inc.sql [mysql@mysql-test-83 ~]$ tail -n 20 backup_inc.sql .......@mysql-test ~]$ mysql -S /tmp/mysql.sock < backup.sql # 应用增量日志 [mysql@mysql-test ~]$ mysql -S /tmp/...='mysql-bin.000034', MASTER_LOG_POS=38414; 2 找出执行了 drop table 语句的 pos 位置 [mysql@mysql-test mysql_test...@mysql-test ~]$ mysql -S /tmp/mysql.sock < backup_inc_1.sql [mysql@mysql-test ~]$ mysql -S /tmp/mysql.sock...是由美团点评公司技术工程部开发维护的一个回滚 DML 操作的工具,项目链接 MyFlash 限制: binlog格式必须为row,且 binlog_row_image=full 仅支持5.6与5.7 只能回滚DML(增、删、
视图是由SELECT查询语句所定义的一个虚拟表,是查看数据的一种非常有效的方式。视图包含一系列带有名称的数据列和数据行,但视图中的数据并不真实存在于数据库中,视...
事件取代了原先只能由操作系统的计划任务来执行的工作,而且MySQL的事件调度器可以精确到每秒钟执行一个任务,而操作系统的计划任务(如:Linux下的CRON或Windows下的任务计划)只能精确到每分钟执行一次...2、事件调度器的开启 MySQL默认关闭事件调度器。...global variables like '%event_scheduler%';SHOW PROCESSLIST; 开启事件调度器 set global event_scheduler=ON; 在MySQL...event_scheduler = 1 #或者ON 3、事件的查看 SELECT * FROM mysql.event; SHOW EVENTS; SELECT * FROM information_schema.events
db.student from 'wang'@'localhost'; 3、数据操作语言(DML) DML:Data Manipulation Language 用于操作数据库对象中所包含的数据,增、删、...VERSION() 返回数据库的版本号 CONNECTION_ID() 返回服务器的连接数,也就是到现在为止mysql服务的连接次数 DATABASE(),SCHEMA() 返回当前数据库名 USER(...如果对一个字段存储了一个超出许可范围的数字,MySQL会根据允许范围最接近的一端截短后再进行存储。MySQL会在不合规定的值插入表前自动修改为0。 UNSIGNED 修饰符规定字段只保存正值。...没有冒号分隔符的TIME类型值,将会被MySQL理解为持续的时间,而不是时间戳。 MySQL还对日期的年份中的两个数字的值,或是SQL语句中为YEAR类型输入的两个数字进行最大限度的通译。...MySQL 会自动使用系统当前的日期和时间来填充它。
]> insert into test values (4,'d'); Query OK, 1 row affected (0.00 sec) 3.数据库突然故障(其实是小伙伴没事儿删库练手玩儿),数据无法访问...需要恢复备份: 删库跑路: # 这里为了便于测试,不把删库操作记入日志,当前 session 设置 sql_log_bin 为 off。...# 删库后,执行 flush logs,让后续的 binlog 到新的文件中,即名为 mysql-bin.000003中 MySQL [t2]> set sql_log_bin = 0; Query OK...冷备份 冷备份其实就是停掉数据库服务,cp 数据文件的方法。(基本不考虑这种方法) 2. 热备份 在 MySQL 中,对于不同的存储引擎热备份的方法也有所不同。...:架构下静态数据通用缓存机制 微服务:小型系统如何“微服务”开发 微服务:深入理解为什么要设计幂等性的服务 中间件:应用消息中间件设计可以解决哪些实际问题?
作者:天山老妖S 链接:http://blog.51cto.com/9291927 一、索引简介 1、索引简介 索引(Index)是帮助MySQL高效获取数据的数据结构。...在MySQL中,索引属于存储引擎级别的概念,不同存储引擎对索引的实现方式是不同的。...possible_keys:MySQL在搜索数据记录时可以选用的各个索引 key:实际选用的索引 key_len:显示MySQL使用索引的长度(使用的索引个数),当key字段的值为 null时,索引的长度就是...rows:MySQL在执行查询时预计会从数据表里读出的数据行的个数。 extra:提供与关联操作有关的信息。 ...MySQL只需要通过索引就可以返回查询所需要的数据,而不必在查到索引之后进行回表操作,减少IO,提供效率。
select * from TStudent where sname like '%志%' or class='net'; 10、查询结果不重复 在SELECT语句中可以使用DISTINCE关键字指示MySQL...studentid<=10 union select studentid, sname from TStudent where sname like '王%'; 13、为表和字段取别名 为字段取别名 MySQL...MySQL不支持全外连接。可以通过左外和右外求合集来获取全外连接的查询结果。...三、对查询结果排序 MySQL中可以通过在SELECT使用ORDER BY子句对查询的结果进行排序。 1、单列排序 ASC代表结果会以由小往大的顺序列出,而 DESC 代表结果会以由大往小的顺序列出。...MySQL用WHERE子句对正则表达式提供了初步的支持,允许指定用正则表达式过滤SELECT检索出的数据。 在SQL查询语句中,查询条件REGEXP后所跟的东西作为正则表达式处理。
第一步:打在开始界面中找到mysql 第二步:双击打开mysql软件。,并输入密码。 第三步:如果sql文件的内容中有创建数据库的语句或者你想将表存放在你已有的数据库,在这里就不用创建数据库。
目前Internet上流行的网站构架方式是LAMP(Linux+Apache+MySQL+PHP),即使用Linux作为操作系统,Apache作为Web服务器,MySQL作为数据库,PHP作为服务器端脚本解释器.../usr/bin #相关命令目录 /etc/init.d/mysql #启动脚本 8、MySQL服务端口开启 开启MySQL服务端口3306并保存 /sbin/iptables -I INPUT -p...服务器 使用telnet xx.xx.xx.xx 3306命令测试Windows客户端是否能连接MySQL服务器。...如果不能连接可能是Linux服务器的防火墙或是云主机的安全组限制。 12、关闭MySQL服务的域名解析功能 通常MySQL服务会对连接的客户端进行域名解析,影响访问MySQL的速度。...security riskssymbolic-links=0 skip-name-resolve 重启MySQL服务。
每个服务都有一个对应的systemd单元(.service文件),它包含了服务的配置信息和启动脚本。 systemctl命令可以与这些单元进行交互,来启动、停止、重启、启用或禁用服务。...主要参数说明: Description:主要填写服务的介绍,表明该服务的用途。 WorkingDirectory:启动命令的工作路径,一般配置为组件所在的安装路径。...StandardOutput:服务运行时日志的输出路径。 StandardError:服务运行时错误日志的输出路径。这里将错误日志与正常运行日志分开主要是为了当服务报错时,排查问题方便。...第四步:启动服务 当我们进行完前置步骤后,就可以使用systemctl命令来对我们安装的服务进行管理。...#启动服务 systemctl start grafana.service #停止服务 systemctl stop grafana.service #重启服务 systemctl restart grafana.service
存储过程是数据库管理中常用的技术之一,可以很方便的做些类似数据统计、数据分析等工作,SQL SERVER、ORACLE、MySQL都支持存储过程,但不同的数据库环境语法结构有所区别。
创建数据库,指定数据库的默认字符集为utf8。 create database schoolDB default character set utf8; 连接数...
领取专属 10元无门槛券
手把手带您无忧上云