一、场景当我们业务数据库表中的数据越来越多,如果你也和我遇到了以下类似场景,那让我们一起来解决这个问题数据的插入,查询时长较长。后续业务需求的扩展在表中新增字段影响较大。表中的数据并不是所有的都为有效数据 需求只查询时间区间内的。评估表数据...
先准备数据CREATE TABLE `user_operation_log` ( `id` int(11) NOT NULL AUT...
我们知道在mysql中 int占4个字节,那么对于无符号的int,最大值是2^32-1 = 4294967295,将近40亿,难道用了int(1),就不能达到这个最大值吗?CREATE TABLE `user` ...
第一步保证mysql已经开启binlog,查看命令-- 查看binlog是否开启 show variables like '%log_bin%'; -- 查看binlog...
1.慢SQL优化思路1.1 慢查询日志记录慢SQL如何定位慢SQL呢、我们可以通过慢查询日志来查看慢SQL。默认的情况下呢,MySQL数据库时不开启慢查询日志(slow query log)呢。所以我们需要手动把它打开。查看下慢查询日志配置...
1.命名规范数据库表名、字段名、索引名等都需要命名规范,可读性高(一般要求用英文),让别人一看命名,就知道这个字段表示什么意思。比如一个表的账号字段,反例如下:acc_no,1_acc_no,zhanghao正例:account_no,ac...
MySQL的自增id都定义了初始值,然后不断加步长。虽然自然数没有上限,但定义了表示这个数的字节长度,计算机存储就有上限。比如,无符号整型(unsigned int)是4个字节,上限就是2^32 - 1。那自增id用完,会怎么样?表定义自增...
1. SQL没加索引很多时候,我们的慢查询,都是因为没有加索引。如果没有加索引的话,会导致全表扫描的。因此,应考虑在 where 的条件列,建立索引,尽量避免全表扫描。反例:正例:2. SQL 索引不生效2.1 隐式的类...
看到这组数据似乎好像真的和标题对应,当数据达到 2000w 以后,查询时长急剧上升;难道这就是铁律吗?那下面我们就来看看这个建议值 2kw 是怎么来的?单表数量限制首先我们先想想数据库单表行数最大多大?看上面的建表 sql,id 是主键,本...
权限管控可以通俗的理解为权力限制,即不同的人由于拥有不同权力,他所看到的、能使用的可能不一样。对应到一个应用系统,其实就是一个用户可能拥有不同的数据权限(看到的)和操作权限(使用的)。主流的权限模型主要分为以下五种:ACL模型:访问控制列表...