1
VeryZero 2023-01-14 13:32:24 +08:00
加索引时要锁表的呀,谁敢自动加。
生产环境连手动加都很谨慎,别说自动了 |
2
makelove 2023-01-14 15:27:38 +08:00
这东西靠 AI 来加的话也太不可控了,毕竟索引副作用挺大的要根据业务权衡
|
3
opengps 2023-01-14 15:41:12 +08:00
只有一个地方有,就是你建表不加索引时候会给你自动加一个默认的。别的场景,都是无法“智能化自动完成”,记录分支只代表过去,最近使用的查询相关逻辑,在内存里的已经做了一层缓存了
|
4
wolfie 2023-01-14 15:49:20 +08:00
光 SQL 执行记录咋分析啊。
比如 租户字段. |
5
hhjswf 2023-01-14 16:22:03 +08:00 via Android
索引要牺牲插入删除的性能,原则是尽可能少,自动加引擎没那么聪明
|
6
fanyingmao OP @VeryZero #1
我指的不是在生产环境自动加,先在测试环境用 sql 找到可以优化的索引,生成加索引语句。在停服维护时,再加索引,这样开发只要关心业务,不要关心索引。 |
7
fanyingmao OP |
8
MeteorCat 2023-01-14 19:23:28 +08:00 via Android
|
9
512357301 2023-01-14 22:14:22 +08:00 via Android
用列式存储吧,全表自动索引
|
10
IvanLi127 2023-01-14 22:48:29 +08:00
设计时不设计好,事后加还不愿意,还想要自动的。。。有点过分啊
既然想自动加,那为啥不直接一开始就全部加上? |
11
em70 2023-01-14 22:59:25 +08:00
既然这么简单,你做一个输入 SQL,自动产生索引建议的工具不就行了,看有没有人愿意付费
|
12
icy37785 2023-01-15 00:00:54 +08:00 via iPhone
既然觉得索引就算加错了,也不怎么影响性能,那其实可以把索引全加上。
|
13
nothingistrue 2023-01-15 11:30:30 +08:00
@fanyingmao #6 先暂停讨论索引跟业务的关系,来比较一下常规加索引和你想要的加索引方法的区别。
常规加索引方式步骤:推测可能有的 SQL ,加索引。该方式: 只需启动数据库; 实际效果可控; 可以根据实际结果实时调整索引; SQL 太垃圾导致加索引都不行的时候直接回头调整 SQL 即可。 AI 自动加索引方式步骤:启动应用服务,全部功能跑一遍,AI 引擎扫描 SQL 执行记录,加索引。该方式: 需要启动所有服务; 需要提前跑掉全部功能;实际效果取决于 AI 引擎的智商但至少目前还没有智商超过人类的 AI ; SQL 太垃圾导致加索引都不行的时候,除了要回头调整 SQL 外所有步骤都要重新做一遍。 然后接着讨论索引跟业务的关系,一句话:数据库的所有物理模型,经逻辑模型、概要模型决定链之后,最终是由业务决定的。 别找 AI 加索引了,花钱雇个人给你加索引,更具备可行性。 |
14
fanyingmao OP |
15
vitoliu 2023-01-15 12:12:43 +08:00 via iPhone
6,7 年前开始生产环境就不单靠 MySQL 了(B 类除外),你说的自动加索引,实际上就是研发加了一层高效的查询中间件。
|
16
fanyingmao OP @nothingistrue #13
“需要提前跑掉全部功能”,我想只要跑下所有查询的语句就可以了,只要业务测试出 sql 语句给工具测试就可以了,用不上 ai 。 |