网站建设结构设计,哈尔滨百度网站排名,WordPress 网站成本,网页设计html代码大全继承关系本周我们将要讲解一下设计索引的时候#xff0c;我们通常应该考虑哪些因素#xff0c;给哪些字段建立索引#xff0c;如何建立索引#xff0c;建立好索引之后应该如何使用才是最合适的。
可能有的朋友会希望尽快更新后面的内容#xff0c;但是因为工作的原因的确非常忙我们通常应该考虑哪些因素给哪些字段建立索引如何建立索引建立好索引之后应该如何使用才是最合适的。
可能有的朋友会希望尽快更新后面的内容但是因为工作的原因的确非常忙也很少有周末时间目前一周三更也是竭尽全力了希望大家理解一下。
此外可以告诉大家的一个好消息是下周开始将会开启为期两周的案例实战部分也就是我们将会以一个电商平台的商品系统、交易系统以及营销系统的表结构设计以及索引设计作为案例背景来告诉大家在实际的系统设计中应该如何设计表结构以及索引。
接下来的这个案例将会包含商品表、商品详情表、订单表、物流表、退款表、购物车表、营销活动表等多个表的设计帮助大家在电商场景下去学习表结构的设计以及针对具体的业务场景如何设计索引这就跟我们最近学习的索引部分完全关联上了。
好了那么接着就开始本周的索引设计一般原则的讲解吧。
首先我们在针对业务需求建立好一张表的结构之后就知道这个表有哪些字段每个字段是什么类型的会包含哪些数据
接着设计好表结构之后接下来要做的就是要设计表的索引这个设计索引的时候我们要考虑第一点就是未来我们对表进行查询的时候大概会如何来进行查询
其实很多时候很多人可能说你要让我刚设计完表结构就知道未来会怎么查询表那我怎么可能知道呢实在是想不出来
好那么没关系此时我们完全可以在表结构设计完毕之后先别急着设计索引因为此时你根本不知道要怎么查询表。
接着我们就可以进入系统开发的环节也就是说根据需求文档逐步逐步的把你的Java业务代码给写好在写代码的过程中现在一般我们都是用MyBatis作为数据持久层的框架的你肯定会写很多的MyBatis的DAO和Mapper以及SQL吧
那么当你系统差不多开发完毕了功能都跑通了此时你就可以来考虑如何建立索引了因为你的系统里所有的MyBatis的SQL语句都已经写完了你完全知道对每一张表会发起些什么样的查询语句对吧
那么这个时候第一个索引设计原则就来了针对你的SQL语句里的where条件、order by条件以及group by条件去设计索引
也就是说你的where条件里要根据哪些字段来筛选数据order by要根据哪些字段来排序group by要根据哪些字段来分组聚合
此时你就可以设计一个或者两三个联合索引每一个联合索引都尽量去包含上你的where、order by、group by里的字段接着你就要仔细审查每个SQL语句是不是每个where、order by、group by后面跟的字段顺序都是某个联合索引的最左侧字段开始的部分字段
比如你有一个联合索引是INDEX(a,b,c)此时你一看发现有三个SQL包含了where a? and b?order by a,bgroup by a这些部分那么此时where、order by、group by后续跟的字段都是联合索引的最左侧开始的部分字段这就可以了说明你的每个SQL语句都会用上你的索引了。
所以在设计索引的时候首先第一条就是要按照这个原则去保证你的每个SQL语句的where、order by和group by都可以用上索引。