Gadfly

Results 27 comments of Gadfly

话说推荐把cli-service的插件也一起更新上去。。虽然目前看起来跨小版本没什么影响

就三个个vue-cli创建的时候带的嘛 创建项目的时候他们都是一个版本的,所以我觉得一起升级比较靠谱,万一跨版本不兼容就很尴尬

有没有具体异常日志?我之前写的时候测试下来是对的

问题是由于yml不声明字段时spring没有调用set方法导致的,我发起了一个pr,你可以根据这个自己修改或者cherry-pick什么的

如果把`delete_time`的默认值设为`'9999-12-31 23:59:59.999'`是不是一个可行的做法呢

`datetime`类型的`delete_time`也可以将`9999-12-31 23:59:59.999`这样特定的时间作为默认值。 虽然mysql通过设置也可以设置0日期,但是这不是默认设置,所以选择一个特别大的时间会更合适。 另外现在项目中提供的`schema.sql`中是把`delete_time`字段作为唯一索引的最后一项来建立索引,但是mybatis-plus的QueryWrapper则是会把软删除字段放在第一个,其他字段用`AND (xxxx)`加在后面。不如就把`delete_time`直接作为唯一索引的第一项来提高查询效率。 在我的项目中字段改为最大值后实际QueryWrapper生成的语句: ```sql SELECT id,username,nickname,avatar,email,create_time,update_time,delete_time FROM lin_user WHERE delete_time='9999-12-31 23:59:59.999' AND (username = ?) SELECT id,user_id,identity_type,identifier,credential,create_time,update_time,delete_time FROM lin_user_identity WHERE delete_time='9999-12-31 23:59:59.999' AND (user_id = ? AND...

> > > > 正常情况下未删除数据占大多数,这种方式有大量的delete_time值都是9999-12-31 23:59:59.999,区分度非常低,作为第一索引不太合适 > > Java开发手册有提到 > 【推荐】建组合索引的时候,区分度最高的在最左边。 正例:如果where a=? and b=?,a列的几乎接近于唯一值,那么只需要单建idx_a索引即可。 说明:存在非等号和等号混合判断条件时,在建索引时,请把等号条件的列前置。如:where c>? and d=? 那么即使c的区分度更高,也必须把d放在索引的最前列,即建立组合索引idx_d_c。 https://github.com/baomidou/mybatis-plus/blob/2864ac656b1e24d52f6b6ef55a73f29c7ff4a108/mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/injector/AbstractMethod.java#L204-L243 MP默认的SelectOne语句在拼接的最后一步时把逻辑删除字段前置了(Line 226),可能需要覆写SqlInjector等方法才能把逻辑删除字段后置

> > sql书写的字段顺序对查询效率没有影响,比如索引是idx_b_a,查询条件是where a = ? and b = ?,查询也会用到索引idx_b_a,explain可以看出来 了解了 是我对最左前缀的理解出现了错误