MySQL命令行中创建触发器要注意的问题
触发器创建语法: create trigger 触发器名before/after insert/delete/update on 表名for each rowbegin SQL语句end; 在MySQL终端中,使用上述语法时会报错,因为SQL语句末尾需要加分号; ,但是终端中一旦出现分号,系统就认为触发器创建结束,导致出错,所以需要在使用前修改系统默认的结束标记,例如// delimiter //create trigger 触发器名 before/after insert/delete/update on 表名for each rowbegin SQL语句end// 这样在SQL语句中的分号就不会认为是触发器创建完毕,只有遇到指定结束符才完成触发器的创建。
Mysql 如何解决 BIGINT UNSIGNED value is out of range
今天有一个之前常发生的sql 错误 BIGINT UNSIGNED value is out of range , 错误常见但一直没百度查. 这个月初出了同样的问题. 记录下 水一下博客. 问题场景 . 查询SQL 表结构CREATE TABLE `table1` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `tim1` int(11) NOT NULL DEFAULT '0' COMMENT '时间1', `tim2` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '无符号 时间2', PRIMARY KEY (`trade_id`)) ENGINE = InnoDB DEFAULT CHARSET = utf8; 问题语句select * from table1 where (time1 - time2) > 10; 光看上一条没问题, 但如果 time1 小于 time...
限流方案
限流方案:保护系统稳定和可靠的流量控制在现代计算机系统中,限流是一种重要的技术手段,用于控制系统的负载和保护系统免受过高的访问流量冲击。本篇博客将介绍一些常见的限流方案,帮助您实现流量控制和保护系统的稳定性和可靠性。 1. 令牌桶算法令牌桶算法是一种常见的限流算法,它基于令牌桶的概念。在令牌桶中,以固定的速率产生令牌,并根据请求的需要来消耗这些令牌。当令牌桶中没有足够的令牌时,请求将被拒绝或延迟处理。 使用令牌桶算法进行限流时,可以根据系统的处理能力和负载情况设定令牌的产生速率和令牌桶的容量。通过调整这些参数,可以控制系统可以处理的请求的速率,以避免过载和崩溃。 2. 漏桶算法漏桶算法是另一种常见的限流算法,它基于一个类似于漏桶的结构。在漏桶中,以固定的速率处理请求,如果请求到达时桶已满,则请求将被丢弃或延迟处理。 漏桶算法可以控制请求的处理速率,并平滑地处理突发的流量。通过调整漏桶的容量和处理速率,可以限制系统处理请求的速率,以保护系统免受过高的负载。 3. 基于时间窗口的限流基于时间窗口的限流是一种简单而有效的限流策略。它将时间划分为固定大小的窗口,并在每个窗口内限制请求...
Linux 删除历史记录
如果您想要删除 Linux 系统中的完整命令历史记录,包括以前的所有命令记录,可以尝试以下方法来清除历史记录: 删除历史记录文件: Linux 系统通常将用户的命令历史记录保存在一个文件中,您可以删除或清空这个历史记录文件来清除所有记录。历史记录文件通常是用户的家目录下的 .bash_history 文件。 rm ~/.bash_history 清空当前会话和写入历史记录文件: 您可以通过 history -c 命令清空当前会话的历史记录,然后使用 history -w 强制将当前会话的历史记录写入历史记录文件中。 history -chistory -w 修改历史记录保存位置: 如果您希望将历史记录保存到其他位置,可以通过设置 HISTFILE 变量来指定历史记录文件的路径。例如,将历史记录保存到 /dev/null 中,表示不保存历史记录。 export HISTFILE=/dev/null 请注意,在执行这些操作之前,请务必确认您真的要删除历史记录,因为这些操作是不可逆的。删除历史记录后,以前输入的命令将无法再通过历史记录查看或检索。
Webscoket 客户端连接 2分钟断开 1006 错误码
问题描述 :观察客户端 每2分钟 websocket 断开连接, 提示 1006 CLOSE_ABNORMAL. 排查问题 :服务端观察日志能发现的确与客户端同一时间断开连接. 但服务端onClose事件并不是服务端主动要求断开的.客户端也有6秒 定时发ping包, 双方心跳检测都不是超时问题.知道运维同学 帮忙查了下, 使用cloudflare CDN的新域名观察后并没有这个问题.那就破案了,现有的域名CND用的都是Google Cloud , 运维同学咨询了谷歌售后服务. 回答的都绝了 聊天内容如下 : > $1 : 关于负载均衡的问题,,用户 -> 负载均衡 -> nginx,https的服务没有问题,websocket的服务2分钟后就断了> $1 : timeout设置为999999999> $2 : 这是有哪些地方需要单独设置吗 > $1 : 对> $2 : 那会影响https的服务吗> $1 : 对> $2 : 把websocket单独令出来 上面对话简单来说就是 我们webscoket服务用的谷歌云的负载...
MySql 之 json_extract 函数处理json字段
MySQL中的json_extract函数处理JSON字段引言MySQL是一种流行的关系型数据库管理系统,从MySQL 5.7版本开始,引入了对JSON数据类型的支持。json_extract函数是MySQL提供的用于操作和提取JSON字段数据的函数之一。本文将介绍json_extract函数的用法和示例,并探讨其在处理JSON字段中的应用。 1. json_extract函数概述json_extract函数用于从JSON字段中提取特定的数据。它的语法如下: json_extract(json_doc, path[, path]...) 其中,json_doc是要提取数据的JSON字段,path是一个或多个用于指定所需数据位置的JSON路径表达式。 2. 使用示例下面是一些json_extract函数的使用示例: 2.1 提取单个值假设有一个名为data的JSON字段,其值为{"name": "John", "age": 25, "city": "New York"}。要提取...
[踩坑] Mysql Order by 使用 有索引的单一字段 , 其他的索引失效
记录一下 今天遇到个问题. 查了查网上的说法 . 先描述问题 表结构CREATE TABLE `table` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `uid` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT 'UID', `type` tinyint(1) unsigned NOT NULL DEFAULT '1' COMMENT '1 2', `t_time` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT 'UID', `create_time` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '毫秒时间戳', PRIMARY KEY (`id`), KEY `idx_utc` ...
Nginx 透穿原始域名
将原始域名透传 proxy_set_header Host $host:$server_port;proxy_set_header X-Real-IP $remote_addr;proxy_set_header REMOTE-HOST $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
Mysql索引合并: 一条sql可以使用多个索引
MySQL索引合并:一条SQL可以使用多个索引引言在MySQL数据库中,索引是提高查询性能的关键因素。通常情况下,一条SQL语句只能使用一个索引来加速查询。然而,在某些情况下,MySQL的查询优化器可以使用多个索引来执行查询操作,这被称为索引合并。本文将介绍索引合并的概念、使用场景和注意事项,并探讨其在提升查询性能方面的作用。 1. 索引合并概述索引合并是指MySQL查询优化器在执行查询时,同时使用多个索引来满足查询条件的过程。通过合并多个索引,查询优化器可以更有效地定位符合查询条件的数据,从而提高查询性能。 2. 索引合并的使用场景索引合并通常在以下两种情况下发生: 2.1 联合索引合并当一个查询条件涉及到多个列,并且这些列中的每一列都有单独的索引时,MySQL查询优化器可以通过联合索引合并来加速查询。例如,考虑以下查询语句: SELECT * FROM table_name WHERE column1 = value1 AND column2 = value2; 如果column1和column2分别有单独的索引,查询优化器可以合并这两个索引,以减少数据的扫描并快速定位...
TCP端口状态说明ESTABLISHED、TIME_WAIT、 CLOSE_WAIT
一. 首先说下tcp端口的几种状态:1、LISTENING状态FTP服务启动后首先处于侦听(LISTENING)状态。 2、ESTABLISHED状态ESTABLISHED的意思是建立连接。表示两台机器正在通信。 3、CLOSE_WAIT对方主动关闭连接或者网络异常导致连接中断,这时我方的状态会变成CLOSE_WAIT 此时我方要调用close()来使得连接正确关闭 4、TIME_WAIT我方主动调用close()断开连接,收到对方确认后状态变为TIME_WAIT。TCP协议规定TIME_WAIT状态会一直持续2MSL(即两倍的分 段最大生存期),以此来确保旧的连接状态不会对新连接产生影响。处于TIME_WAIT状态的连接占用的资源不会被内核释放,所以作为服务器,在可能的情 况下,尽量不要主动断开连接,以减少TIME_WAIT状态造成的资源浪费。目前有一种避免TIME_WAIT资源浪费的方法,就是关闭socket的LINGER选项。但这种做法是TCP协议不推荐使用的,在某些情况下这个操作可能会带来错误。 5、SYN_SENT状态SYN_SENT状态表示请求连接,当你要访问其它...




