聚合国内IT技术精华文章,分享IT技术精华,帮助IT从业人士成长

  • 3381534 views阅读

    从千年虫bug的问题谈开去

    最近微软又爆了一个千年虫的bug,微软FIP-FS反恶意软件扫描引擎由于Year 2022漏洞导致Exchange服务器无法发送邮件。 另外,本田、讴歌汽车也爆了Y2K22千年虫漏洞。 这是因为,在程序中,或者数据库中,字段类型定义成int32字段类型。而int32,一共32位,第一位表示符号,因此可以表示数值大最大位是31位,即2147483647: 111111111111111111...

    分类:技术文章 时间:2022-01-07 17:37 我要评论(0个)

  • 4235968 views阅读

    SQL 日期/时间处理函数

    在数据统计分析中,经常会遇到需要对时间进行格式转化或其他层面的内容。由于每种数据库自带的相关函数存在一定的差异,所以经常会记不得如何使用。今天做下简单的梳理。 在开始学习日期/时间函数先,先来了解下数据库中常见的日期/时间存储格式: Unix时间戳(10位,单位为秒,1970年1月1日到现在的秒数):1605191559 Unix时间戳(13位,单位为微秒):1605191559123...

    分类:技术文章 时间:2020-11-23 21:05 我要评论(0个)

  • 2264981 views阅读

    InnoDB 共享表空间和独立表空间

    MySQL数据库索引结构 在MySQL中,索引属于存储引擎级别的概念,不同存储引擎对索引的实现方式是不同的,MySQL存储引擎MyISAM、InnoDB文章中,我们讲到了两者在存储结构上的差异。下面主要讨论MyISAM和InnoDB两个存储引擎的索引实现方式。 MyISAM 每个MyISAM在磁盘上存储成三个文件:表结构、表索引、表数据空间。 .frm文件存储表定义 .MYD (MYDa...

    分类:技术文章 时间:2020-11-09 01:50 我要评论(0个)

  • 1466469 views阅读

    听说JOIN的列类型一定要一样?

    导读 我们在制定表DDL设计规范时,通常都会要求一条:如果有两个表要做JOIN,那么关联条件列类型最好完全一样,才能保证查询效率,真的如此吗? 相信不少朋友主动或被动告知这样一个规范要求(其实我也制定过这个规范),当多表JOIN时,关联条件列类型最好是完全一样的,这样才可以确保查询效率。果真如此吗? 关于多表JOIN的几点结论及建议 为了节省大家时间,我先把几点结论写在前面,没耐心的同...

    分类:技术文章 时间:2020-07-14 21:48 我要评论(0个)

  • 1695632 views阅读

    NOT NULL列用IS NULL也能查到数据?

    导读 datetime列设置了NOT NULL约束,但查询条件IS NULL却能返回结果,奇怪吗? 测试表DDL CREATE TABLE `t1` ( `id` int(11) DEFAULT NULL, `dt` datetime NOT NULL DEFAULT '0000-00-00 00:00:00' ) ENGINE=InnoDB 插入测试数据: yejr@imysq...

    分类:技术文章 时间:2020-07-13 16:10 我要评论(0个)

  • 1949371 views阅读

    活久见,为什么SHOW TABLE STATUS总是不更新

    踩坑了吗? 1. 问题描述 前几天,QQ群里在讨论一个关于MySQL表统计信息迟迟不更新的问题。 这个问题我复现了,下面是详细过程: # 创建一个空表 [root@yejr.run]>create table ttxx like t1; # 第一次执行 show table status,看到 Rows = 0,没问题 [root@yejr.run] [test]>sho...

    分类:技术文章 时间:2020-07-12 23:41 我要评论(0个)

  • 1929975 views阅读

    为何COUNT很慢却不写SLOW LOG

    MySQL对COUNT(*)一直在优化。 1. 问题描述 某日,群友反馈问题对大表COUNT(*)很慢,但却不会记录到slow log中,这是为什么呢? 我自己根据他提供的信息,复现了这个问题: # MySQL版本是8.0.20 [root@yejr.run]>s ... Server version: 8.0.20 MySQL Community Server - GPL .....

    分类:技术文章 时间:2020-07-12 23:41 我要评论(0个)

  • 2126111 views阅读

    Amazon RDS的同步复制是如何实现的

    一直以来实现数据库的零数据丢失都是非常有挑战,尤其是跨可用区的场景下。很多核心系统为了实现这一点都投入了大量的智慧和金钱。Amazon RDS在文档都明确的写到,数据库在多AZ之间的数据是保持同步的(注:同步是指数据写入两边要同时写成功,即使一边不可用,已经提交的事务在另一边一定是成功的)。一直以来,我也很好奇Amazon RDS在哪个层面实现的同步复制。 这个问题原本也是没有太大疑问的,...

    分类:技术文章 时间:2020-07-09 00:26 我要评论(0个)

  • 1514818 views阅读

    线上账务系统余额并发更新问题记录

    某电商平台,某天线上用户报bug说账户余额信息与交易流水对不上。可以认为是数据库并发更新问题,由此定位出具体原因,并给出解决方案。 问题现象 场景描述 线上账务系统,在定时结算给卖家钱时,且高并发量的情况下,出现提现x元(假设当前用户余额为x元)余额为0后,再转入该账户一笔钱(假设为y元),结果账户余额变为了x+y 元,导致用户余额错误。 ps:账户余额的变更都是在事务中update的 环...

    分类:技术文章 时间:2018-04-24 21:45 我要评论(0个)

  • 4106693 views阅读

    关于MaxScale2.1的BSL协议

    MaxScale是一个非常赞的MySQL Proxy产品,相比MySQL Route或者ProxySQL来看,也是非常有竞争力的。但是MaxScale有些特别,虽然是开放源代码的,但并不是一个“Open Source”的项目,他使用了特有的授权协议:BSL协议。那什么是BSL协议? 这里做个简单的说明,感兴趣的可以继续阅读文章后面的链接做延伸阅读。 BSL全称是Business Sourc...

    分类:技术文章 时间:2018-01-19 15:05 我要评论(0个)

  • 1064268 views阅读

    优化案例 | 分区表场景下的SQL优化

    导读 有个表做了分区,每天一个分区。 该表上有个查询,经常只查询表中某一天数据,但每次都几乎要扫描整个分区的所有数据,有什么办法进行优化吗? 待优化场景 有一个大表,每天产生的数据量约100万,所以就采用表分区方案,每天一个分区。 下面是该表的DDL: CREATE TABLE `t1` (  `id` bigint(20) NOT NULL AUTO_INCREMENT,  `d...

    分类:技术文章 时间:2017-06-06 01:10 我要评论(0个)

  • 1882646 views阅读

    优化案例 | CASE WHEN进行SQL改写优化

    导读 今天给大家分享一个通过SQL改写而独辟蹊径的SQL优化案例 待优化场景 发现SLOW QUERY LOG中有下面这样一条记录: ... # Query_time: 59.503827  Lock_time: 0.000198  Rows_sent: 641227  Rows_examined: 13442472  Rows_affected: 0 ... select uid,...

    分类:技术文章 时间:2017-06-06 01:10 我要评论(0个)