V2EX › MySQL
请问 ,我有一张一百万数据的表,然后插入的时间顺序是乱的,时间格式是 '2020-01-01 00:00:00' 这样的数据(后面的时分秒都是'00:00:00'),求 2020 年某个字段的 sum 值
By GroupF at 2020 年 11 月 13 日 · 4351 次点击mysql 5.7
我根据时间建立普通索引,然后用大于小于,between,substring,like,全走的 all,可能整个数据库表都是 2020 的数据
倒是看 8.0 有个函数索引。。
8 条回复 • 2020-11-14 10:16:47 +08:00
|
1
kely 2020 年 11 月 13 日 via Android 你加个年的字段,然后加个年的索引试试?
|
|
2
huijiewei 2020 年 11 月 13 日 直接用 <> 就是了。按说 between 会走索引的
|
|
3
sagaxu 2020 年 11 月 13 日 via Android 只要 2020 年数据占比超过 10%,就有很大几率扫全表
|
|
4
c6h6benzene 2020 年 11 月 13 日 via iPhone 那就用>=2020-01-01 试试?
|
|
5
dustinth 2020 年 11 月 14 日
没有 context, 没有 constrain, 没有目标, 谈优化无意义; 就像一楼说的, 加个年字段肯定是最快的的.
|
|
6
xiangyuecn 2020 年 11 月 14 日
字符串?无脑 like 前缀匹配
|
|
8
Leigg 2020 年 11 月 14 日 via iPhone
sum 字段也得建索引
|
› MySQL 5.5 Community Server
› MySQL 5.6 Community Server
› Percona Configuration Wizard
› XtraBackup 搭建主从复制
Great Sites on MySQL
› Percona
› MySQL Performance Blog
› Severalnines
推荐管理工具
› Sequel Pro
› phpMyAdmin
推荐书目
› MySQL Cookbook
MySQL 相关项目
› MariaDB
› Drizzle
参考文档
› http://mysql-python.sourceforge.net/MySQLdb.html