今天突然发现 mysql 其实在 5.7 就已经支持了虚拟列,和虚拟列索引. 终于能优化系统中的 select * from dual where phone like '%xxx' 这种以尾号进行模糊查询的场景了
其实最近几年数据库也在不断发展. 但是和一些朋友交流了下,大部分都还在使用基础的 crud 功能.
比如分区表的升级(特指 pg) ,虚拟列,函数索引,条件索引,数组结构.json 增强,cte,窗口函数等
尤其是 pg 的一些插件 ,很大程度上能够让数据库承担一部分的复杂操作
不知道大家有没有尝试去了解和使用这些新功能?
ps mysql5.7 下的 虚拟列以及虚拟列索引稳定吗?
1
bthulu 314 天前
从来不用这玩意. 客户提供的数据库千奇百怪, 只用 ef 支持的功能.
|
2
fkdog 314 天前
现在国内互联网已经不是 10 年前那种百花齐放的时代的,没那么多新增应用去开发。
更多的是维护现有存量应用,屎山都难维护,更别说重构/关注新功能/关注行业动向了。 |
3
mightybruce 314 天前
不要关注 mysql, 多关注 pg 一下。
第一、互联网用不到多少复杂的 mysql, 在银行、保险等企业才会有大量 sql 以及存储过程这类 第二、互联网已经退潮了, 多关注一下 IT 除互联网外的行业使用得数据库行情。 第三、pg 国企还有一些国产数据库开发是比较多的,mysql 屎山太多, 做的扩展和插件远不如 pg, pg 现在通过插件都可以搞向量数据库。 第四、国家内部国企央企钦定不使用 mysql 5.7 以上的,mysql 现在被 oracle 搞得很不明朗,pg 才算是真正开源 |
4
changdy OP @fkdog 这个倒是现况 .18 年项目立项的时候用了 mysql5.7 现在还在用 5.7 挣扎中...因为大家当时对 mysql 8.0 和 pg 都不是很熟悉. 现在还在用 ut8(mb3) emoji 表情都存不了..
|
5
IbukiSuika 314 天前
@mightybruce #3 mysql 5.7 以上的有什么说法吗,非技术方面的问题?
|
6
mightybruce 314 天前
@IbukiSuika 考虑 mysql 逐渐商业化,mysql 社区版和商业版服务差距变大,稳定性等因素。
另外就是国产数据库厂商和国内评审专家的意见。 |
7
fkdog 314 天前
@IbukiSuika 国内搞信创工程,要求政府事业单位项目的中间件全面国产化。
|
8
IbukiSuika 314 天前
|
9
changdy OP @mightybruce 其他都很赞同.但是对于第一点 表达一些不同的看法.
之前确实有不少系统把有很多业务逻辑都写在了存储过程里面 .造成了 难以维护 .难以 debug 所以一些大厂吸取教训 ,从此不再使用存储过程. 这个思路我是完全赞同的. 但是对于普通开发者来说 , 一些中小企业.讲究快速开发. 如果写一些轻量级的存储过程 , 达到一些功能我觉得是完全可行的. |
10
mightybruce 314 天前
那要看业务是否复杂了, 大多数互联网涉及到的数据库操作并不复杂。y 银行到目前为止还有大量存储过程,不过银行用的是 oracle, 完全碾压 mysql, mysql 说实话性能垃圾, 支持的功能也少,像 oracle rac 这类,mysql 就更差了,花钱买的和免费不在一个水平, 不同的业务考虑是不同的,如果看重吞吐量和并发量,那么的确不要使用这些。
大厂都没有多少复杂的金钱结算一致性非常强的业务, 有这个的都去搞自研数据库了 |