七天深入MYSQL实战营

【七天深入MySQL实战营】答疑汇总Day3 MySQL Java 开发实战

【开营第三课,MySQLJava开发实战】讲师:义泊,阿里云技术专家。课程内容:深入浅出ORM框架MyBatis;连接池框架HikariCP和druid的剖析和最佳实践;Java应用性能问题诊断技巧。答疑汇总:特别感谢班委@陈亮同学Q1:MySQL联合索引所有列的时候,为什么任意条件查询都会命中索引?A1:比如表在A、B、C三列建了联合索引而且三列的顺序是ABC,如果查询条件是ABC字段或者AB字

【开营第三课,MySQL Java 开发实战】
讲师:义泊,阿里云技术专家。
课程内容:深入浅出ORM框架MyBatis;连接池框架HikariCP和druid的剖析和最佳实践;Java应用性能问题诊断技巧。
答疑汇总:特别感谢班委@陈亮 同学


Q1: MySQL 联合索引所有列的时候,为什么任意条件查询都会命中索引?

A1:比如表在A、B、C三列建了联合索引而且三列的顺序是ABC,如果查询条件是ABC字段或者AB字段肯定是会命中索引的,只有A字段也会命中索引,但是只是BC字段或者C字段是无法命中的。

 

Q2: mysql对于如订单主从表开发,订单主表的数量合计,金额合计是查询时通过select sum实时查询好,还是在主表设计合物理字段,当从表数据发生变化时写入物理字段好?

A2:实时查询对数据的准确性是最好,但设计合计字段会有维护成本,需要看你实际的应用场景,做相应的取舍。比如只是统计订单的销量,对数据准确性和实时性要求不高,可以考虑用合计字段。

 

Q3: mysql跨异构库关联查询,如跨sqlserver。有没有sql层面的实现方案,用多数据源+java编码实现很麻烦?

A3:在DB层面mysql不支持跨异构数据源的查询,反向sqlserver可以用link等方式实现。

 

Q4: MySQL 联合索引所有列的时候,为什么任意条件查询都会命中索引?

A4:同Q1。

 

Q5:复用数据库

原创不易,完成人机校验,阅读全文

相关推荐