00:00
好看我们今天下午啊。呃,今天下午呢,我们主要来研究一下啊,我们在my bet框架当中的两种配置文件啊,一种呢,就是我们的这个主配置文件,好,My back is can figure chair,那么还有一个就是我们的这个map映文件啊,Student dl.xlok吧,好,这个主配置文件啊,应用起来比较简单啊,功能也比较少,嗯,所以说一会咱们做一个介绍就OK了,咱们今天下午的这个重点啊,放在咱们这个map映射文件上。OK吧,好,首先呢,我们先来看一看咱们这个my Betty的这个全局配置文件啊,好,这个全局配置文件呢,指的就是我们的主配置文件my bet is gone config.XLOK吧,好,那么我们之前所使用的这个啊,环境啊,这个环境的这个配置啊,都是在这里边写死的,对吧?好,那么我们之前肯定学习过一种做法是使用我们这个practice文件的形式来引入它,是这样吗?好,所以说啊,我们先把这个practice文件啊给它集成进来啊。
01:26
行,这个我们来resource这个属性文件啊,DB,当然这个名字你可以自己去写啊,放到我们src的这个根下,好,我们来看一看。啊,上面不用变啊,这里边变一下是吧,123456对吧,好,然后在我们这个主配置文件当中啊,上面咱们可以引一下,咱们使用的是。Practice啊,里边咱们来个resource,好,直接引入咱们这个DB点。
02:07
Proper就可以了啊,Pros这一句话啊,指的是加载咱们这个properties属性文件,那下边这些东西咱们是不是都得从这个properties属性文件中来,对吧?好。这些东西啊,咱们统一度干掉啊。好,读取这个配置文件信息的这个方式啊,肯定是通过这个K取得这个Y6OK吧,好,那么以键值对啊,K等于Y流形式存在的proper文件啊,你看啊,它也是间值对对吧,只要是间值对,咱们就必须通过什么呢。啊,K取取Y6通过间距取值对吧?好取值的方式啊,非常简单,使用的是我们的表达式语言,哎,这个东西咱们以前是不是用过。
03:00
这叫什么表达式医要表达式啊,就表达式语言对不对?好,但是大家注意啊,跟我们传统那个GSP当中那个要表达式啊不太一样,在这里边我们主要指的是啊,获取practice文件中的内容,OK吧,通过以这个key的形式来求value,你看看现在咱们这个K是不是叫D接DBC.java。来取得这个Y6值啊,非常简单,好这几项啊,咱们都这么获取一下。JA,这叫什么?URL user passor对吧?来URL。Username以及password。OK啊。接下来咱们再来试一下啊,试一下咱们今天上午那个测试。
04:00
看好不好吃?好使没问题吧,好,那现在咱们有两个小问题需要说明一下啊,第一个问题是什么呢?我们为什么要使用这个DB,为什么。方便修改对吧?诶那我方便修改,比如说我现在要修改这个数据库,Test数据库,我以后改一个数据库,是这样吗?我在这儿修改,那我之前在这里边修改不也是修改。因为大家注意啊,以后咱们框架整合之后啊,啊,我们呢,对于连接数据库的基本信息啊,咱们配置文件可多了,OK吧你得去找它,真得到咱们这个路径下这个资源里边啊,去一个一个找OK吧,好找到它是一件相对来讲比较麻烦的事,OK吧有可能我们是由这个myttu去做管理,那将来我们有可能是用spring去做管理,OK吧在哪个配置文件中不一定OK吧好,所以说呢啊,我们统一把它抽取出来,不论你在哪配的,我们统一都要引用咱们这个property属性文件以后。
05:16
咱们是不是改这个统一的属性文件就可以了,是这样吗?这是一个啊,再有一个就是什么呢?老师啊,这个我就粘的你的这个DB.practice啊,或者是我自己写的这个practice,哎,你的就好使,我的就不好使啊,注意看啊这个东西啊,大家注意啊,K等于Y流的这种形式啊,需要注意两点,第一点是什么呢?啊,你不能写中文OK吗?Property是属性文件,不支持中文OK吧,好啊,中文也有中文的表现形式啊,咱们这个阶段会接触到,暂时先不提OK吧好,那么还有一种就是什么呢?有的同学啊,这个上来啊,把这个DB part写完之后啊啊这怎么说呢?这个说句不好听的话,这手手比较欠啊哎,你没事咔来个空格,哎哎,可能就是闲的无聊,或者就是这么一个小动作小习惯。
06:13
这能行吗?哎,你看看咱们这个idea是不是还给你了一个提示啊,但是这个颜色也比较浅,很难看得出来,这些其他IDE里边这个提示可没有啊,OK吧,好,所以说大家注意啊,这个空格也是我们账号root的一部分,能理解吧,这空格可千万不能乱讲呀,非常的危险,今天上午啊,无数个例子啊,证明了什么呢?是不是敲东西一定要小心呐,尤其字母错了是很难查看的,你看你们今天上午错那个啊,还给你报错的话报出来了对不对,那以后呢,你想一想,有可能你有些错误是字母错的,他不给你报,你怎么办?你就得用你的写作眼去查看配置文件,一个一个的看,哎,对对比这个字母OK吧,包括你们这个传参数的时候,我多说一嘴啊,明明是这个username啊,哎,这个参数取的时候就非得是怎么写的,就是UER,那有好多同学都给我玩什么uerr,就这这个东西啊,也是很容易出错的,OK吧啊写的时候啊,一定要小心啊,好考眼神的问题啊,往往是我们这个。
07:24
哎呀,咱们这个错误率比较多的,OK吧,也是比较这个难以查看的啊好。呃,除了这个proper之外啊,我们再来看一看这个setting啊setting这个setting呢。从我们这个字面意义上来看啊,感觉这个东西貌似是挺有用的,对吧?Setting setting什么意思呢?设置是这样吗?它会设置与我们数据库交互的这个整体的环境OK吗?好。
08:00
好设置。与数据库交互的这个啊环境啊,那大家注意下边不是交互的环境,下边是什么呢?下边是连接数据库的环境OK吗?上边是与数据库交互的环境啊,例如。可以在此处啊配置。啊,二级缓存老师怎么上来就二级缓存的,一级缓存哪去了啊,咱们买白自带一级缓存OK吧,比如说配置二级缓存呢啊配置这个延迟啊。查询的延迟加载策略啊,策略啊。等等啊都是啊,由settings来这个配置好,呃,那么它这个配置啊,最终极的这个目的是什么呢?好配置的目的是为了。
09:04
更加有效的这个啊,查询这个啊,查询这个啊,表中的记录OK吧,好,或者说是更快速的查询出表中的记录OK吧,好,嗯,也就是说我们以后在实际项目开发中啊,同学们注意了啊,至于添加修改删除它没什么这个语句它是不是insert。Update delete都是写死的对不对,但是查询大家注意啊,查询是不是。各式各样的。五花八门的没错吧,好查询它首先它是一个难点,再有一个是什么呢?这个查询的这个效率啊,是决定我们这个啊,啊项目执行效率的一大因素,OK吧,好,有没有觉得咱们这个做这个查询呢。
10:04
诶啊,我查询出来这个结果啊,反应的比较慢,我们以前是不是没有过这种感受,是因为我们表中记录实在是太少了,OK吧,还是那句话啊,如果遇到了这个海量级别的数据。啊,我们做这个查询呢啊,你可真的是啊,可真的是得等,没有见过吧,咱们以前说select语句直接啊一敲就OK了,是这样吧,哎,一敲哎数据就查出来了,以后如果数据量一大的话啊,这个东西就得等了,给大家举一个例子啊,给大家举个例子,呃,比如说啊,以前咱们在这个工作中啊啊至于哪个单位这个这这这咱们就不说了啊呃。这是我带的第一个项目啊,是一个那个政府项目,呃,当时呢,这个我当时去那个甲方那块啊,一客户那块,咱们做的是一个某一个市的这个,呃,比如说是这个市以及市周边的这个啊,主要这个项目审批申报的这个情况的这么一个平台啊,咱们做这么一个东西,以前呢,他有这么一个项目啊,啊客户有这个项目看了一眼啊,然后还给我演示一下,我觉得还不错,还没过时啊,还可以啊,能用啊,啊我说怎么样,又想起来又做一套啊,人甲方怎么跟我说的,别着急啊,我给你啊做一个演示,当时他给我演示的是什么呢?这个是以及这个市周边啊,所有这个啊优秀企业。
11:31
啊,项目申报审批情况啊,什么叫项目申报审批同学们。哎,对,项目申报审批就往国家报知道吗?国家报好项目,国家是给拨钱的,OK吗?好,当时查的是什么呢?从1995年到2005年这十年期间啊,所有的这个项目的申报审批情况OK吧,那相当于什么呢?两个下拉框OK吧,或者是两个文本框,总之输入一个1995年这边输入一个什么2005年点一下查询,是不是就是十年起检呢?对吧?好当时啊,点完这个查询之后呢。
12:06
当时这个鼠标啊,它就变成了一个小漏斗。对,我们之前还是小老头呢,不要现在,现在是不是一个圆圈啊啊总之在等待呢,对不对,好说诶这咋回事啊啊行,别着急啊,咱慢慢等一会儿啊啊咱出去出去抽根烟吧啊出去抽根烟,出去抽烟还是小漏洞啊,不知道人以为死了呢,知道吧,哎呀,这个是不是就是咱们得退出去重进了啊啊不是啊啊再抽一盒吧,唠唠嗑,再抽一盒,再抽一盒回来。查到了说明什么?数据量太庞大了。OK了啊,数量太大了。啊,人家审批的这个光是这个报表和这个论文啊,就光光是文案,就每一个企业都得这么厚,你就想一想吧,啊啊所以说当时呢,后期我给他们做的这个项目,不像我们现在这个服务器里边集成的这个硬盘啊,比如说这个这么便宜对不对,你看现在咱们这个移动硬盘也比较便宜,固态硬盘也比较便宜,对不对,我们以前都是拿什么存数据,我们以前啊,这个是都是用那个光碟光盘存数据。
13:13
然后这个把这个数据存完之后啊,每一份干嘛呢?保存两个到三个光盘,然后存到这个市政府的那个档案室里面,是这样存数据,那数据老大了,不像现在,那咱们现在这个台式机是不是那硬盘都是一个T2个T了,是这样吗?那数据量很大啊,表中的这个记录很多啊,所以说呢,这个分析了一下啊,就是因为这个数据量过大啊。但是我我我没说,其实你这个就是数据量大,你不用重新做,那我不能这么说呀,对不对,那我这活我还干不干了,那是我几几年,我看那是我零九年还是一零年,我第一次以项目经理身份带项目,那我这活能咋能咋吗?我还得说啥呢,你这个是这个项目问题啊,啊这个东西咱们得好好弄一弄啊,但其实就是表中数据太多了,他不知道你知道吗?好,所以说呢。
14:08
大家想一想,咱们这个settinging子是不是啊,配置一些二级缓存呢,延迟加载啊,目的是不是就是为了有效的这个啊,提高咱们这个查询效率啊,对不对,所以说咱们这个setting有用没?同学们。啊,看似是不是很有用啊,对不对,好大家注意啊,那在我们的实际项目开发中啊,项目开发中啊,咱们这个settings啊。的这个设置啊,设置啊,这个基本没用啊。我为什么特意要说他一嘴呢?因为有很多个这个同学啊,把这个settings啊,比如说自己买的一些书籍啊,啊,他觉得这个把这个塞ing讲的挺细的,他觉得这个塞他是一个挺好的东西,其实没用,以后企业啊,你就放心啊,北上广深肯定是不用这个东西的,OK吧,啊,不用这个东西了啊好,为什么呢?因为。
15:05
咱们这个settings啊,对于这个啊,查询的优化啊,优化啊,我们得到的效果啊,好不明显啊不明显好说是这个不明显啊,都是很客气的,其实一点作用都没有。OK吧,好,但是大家注意啊,如果你的这个公司啊,公司里边啊,有这个企业文化,有这个公司的这个习惯啊,他要求你去设置这个东西啊,它基本上跑不过两项啊,这个东西,这个文档呢,我给你了啊这个东西啊,老师总结的还是挺全的,OK吗?好,你看看啊,比如说我第一项,咱们第一个setting啊,Name,咱们设置一个这个缓存的这个开关,大家注意啊,所有的设置都是什么呢?True和false。所有的设置都是开关,要么打开要么关闭,能理解吧,所有的都是触和false啊,那大家注意啊,如果公司让你设置的话,就跑不出前两项,一个是设置缓存,第二个设置咱们这个啊延迟加载OK吧,这两项你直接粘上给它变成什么就行了。
16:12
来处就行了,OK吧,但是一般企业啊,不加这种东西啊,没有什么大用,OK吧,至于下边呢,咱们以后更不用OK吧好,所以说呢,我们现在啊,这个setting啊,对于查询的优化得到的效果不明显,所以呢,我们不用它OK吧好在。对于啊,对于咱们这个啊,海量级别的。数据啊好使用咱们这个setting啊,这个啊配置优化啊。优化啊好起不到这个任何的效果啊,效果好,那么对于啊数据量较少的项目。那么。对于查询。
17:01
效率啊效率,呃,要求的还比较低,能理解吧,好,也没有。必要啊,使用这个settings这个啊配置OK吧,好,所以说啊,它就造成了什么呢?我数据量少我不用你,我数据量多呢,我用你又没有效果,能理解吧,所以说这个东西啊,从这个设置到现在啊,个人认为非常非常鸡肋,那么咱们这个it之所以加上它是因为谁呢?是因为最早期那个hibernate还记得吧,老师给你们介绍的那个持久城框架,冬眠大狗熊hibernate还记得吧?哎,那个全自动框架,它支持这个延迟加载那个策略,那个策略机制非常棒,但是还是那句话啊,那机制很好,但是呢,起到的这个效果很差,OK吧,那其实啊就那个意思,就是hi,有的东西我也得有,OK吧。好,那接下来我们一个话题啊讨论一下,那如果这个啊,遇到了这个海量级别的数据啊,我们如何去提高咱们这个。
18:09
查询的效率呢?好,首先啊,咱们有一个什么呢?啊啊基础优化啊基础。啊,基础优化做出吧,基础操作吧,好再来一个高级操作,最后咱们来一个专业操作啊好,首先这个基础操作啊,就是对于我们数据库表本身对于字段的这个设计OK吧,好,对于什么呢?对于常用的这个啊查询。条件的。字段啊,为他设置什么呢。索引。这东西咱们肯定选过,肯定选好,诶设置索引表示什么意思,我很明确告诉大家啊,这个索引你要设置好了啊,咱们提高这个查询效率啊,是肉眼能够看得到的提高。
19:13
至少能提高15%~20%。就这么强大。索引你要加好,那这个索引它到底是什么?比如说我现在来一个什么呢?我现在来一个select形容from表,Where ID等于什么什么,Where name等于什么什么,那这套S后语句在数据库表中应该是怎么查的呢?数据库表,你就把它看成成什么呢?这些数据就相当于一本书,这本书从是不是从第一页开始翻呢?查查查查查查查查查A内部等于张三的查到,或者ID等于A0引就是查到了,那加索引表示加什么?为这本书加目录,是这样吧,加目录OK吧,好为常用的这个查询字段啊,加索引就相当于加目录,你根据目录来查,是不是会很快啊。
20:03
OK吧,但是呢。我们又不能乱加,为什么?因为每一个字段都加索引是不行啊。你加这个目录,你想一想啊,你每一次啊删除掉啊,比如说你新添加一条记录,或者你删除掉一条记录。咱们在数据库当中默认的这个系统表里边,对于这个索引的处理是不是也得跟着变呢?哎,它会影响这个数据库整体的这个啊,系统的这个运行效果OK吧,好,所以说我们仅仅只是在常用的这个字段上加OK吧,比如说。姓名咱们用的比较多对吧?啊,咱们可以加一个索引嘛。根据名字模糊查是我们经常会使用到的一种手段,比如说我查一查这个班级里边姓张的,那个部门里姓王的,是这样吗?好,这个索引啊,其实也分369等啊,所以索引其实有六七种的,但是这个是属于我们这个DBA这个啊,DBA这个范围呢,我们所需要知道的这个索引是么?有两种就行了,一种叫做普通索引。
21:05
啊,普通索引就是我们以前学过的那种啊,还有一种索引叫什么呢?叫做位图索引啊,位图啊,位置的位图,画的图,这个东西我给你做个长长知识,就了解一下就行了,OK吧,其中普通索引啊,就是在我们普通的这个字段上加就行了,就常用字段上加就行了,OK吧,那这个位图索引啊在哪加呢?当我这个值啊,当我这个值。它的这个值的重复率比较高,比如说我有3000万条记录,但是这个值大家注意啊,它的值的重复率非常高,能理解我意思吧。什么叫重复预告?例如。性别,你哪怕有1亿条记录,这个值是不是应该就是俩呀?男和女?是这样吗?咱不抬杠啊,什么蔡徐坤,咱们不算对不对,不抬杠的情况下是不就男和女啊,对吧,那比如说班级是不是啊,比如说部门是不是就市场部,销售部,什么研发部是这样吗?你多少万条它也是这样对不对,他不像名字,名字怎么着呢?名字是不是,比如说你有3000万条记录,有可能就有3000万个名字,是这样吗?它不一样,OK吧,所以说有效的这个填索引啊,还是这个很重要的,OK吧,好,我们在数据库表字段中有一个字段。
22:27
自带索引,不用我们加谁ID主键OK吧,所以说啊,我们where ID等于什么永远比where其他字段等于什么要来的高效,要来的快,OK吧啊,原因就在于此啊,好,这是一个基础操作啊,加索引还有一个高级操作啊,咱们使用什么呢?呃,No circle数据库啊好,例如啊,咱们现在有一款非常优秀的脑斯克啊,叫做。
23:00
啊,嗯,这个东西啊,基本上现在在企业里边啊,是必用的,必须要使用的,OK吧,缓存数据库,OK吧,缓存数据库啊嗯,加了这个东西之后啊,啊我们查询效率就更高了,OK吧,这个东西啊,咱们第五阶段啊,第五阶段怎么也造个造个两天啊讲这个radi OK吧,这个数据库啊,它是为了增强我们这个查询效率的,跟我们以前在硬盘中存储啊,将数据持有化的那个惯性数据库是不产生冲突的,OK吧,所以说将来我们在实际项目开发中都是什么呢?用my circleql当关系数据库,在硬盘里边存数据,OK吧,拿我们的red当缓存数据库,为了有效的什么呢?提高查询效率,OK吧,好,缺一不可啊。那最后一个专业操作啊,这个专业操作主要针对于谁呢?主要针对于。
24:00
啊,这个啊,电商行业啊,其实这个银行的这个行业啊,这个也是啊,属于一种这个海量级别的数据,但是啊,它尤其指电商啊,有了电商之后,咱们这个专业操作啊才会得到发挥,这个专业操作叫做什么呢?叫做。搜索引擎啊,搜索引擎。搜索引擎,我们现在这个搜索引擎有两种啊。什么鬼行,我直接搜名字吧,一种叫solo啊。一种叫elected。就他俩。将来你如果做电商的话,这两个东西是必须的啊。专业操作啊。
我来说两句