2017-07-18&19
[toc]
数据库
- for循环里写操作数据库是大忌!尤其是这种情况:一次查询的结果中有一个记录还要继续展开查询,两次查询的记录均不止一条。就很容易写成for循环里操作数据库了。解决办法就是循环里的每条sql语句结果合并集体查出放到内存中,简而言之就是用空间换时间。(当然不是绝对,这也是空间换时间~
- distinct关键字要少用,因为内部实现是先对表排序,所以如果不distinct时重复数据较多的话,这种查询就得要想办法加条件使得表变小。
- 对于非一对多关系的两个表(左、右)外连接的主次表是有讲究的。A左连接B和B左连接A有可能效率不同,因为产生的记录数量不同。(外连接是指定的左表的所有行,而不仅仅是连接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值。
- 我们的项目中基本每个实体表都有两个属性IsUse和IsDel,基本上做连接操作时都要加上两个and条件,前者为1后者为0。这样就可能产生一种情况,如果A、B是从属关系,理论上A中的某条记录IsDel是1,那么B对应的属下记录的IsDel也应该是1,但要防止脏数据,所以这时各条IsUse和IsDel条件的位置就很重要了。稳妥的办法是放到where语句中而不是作为连接的条件(on),或者养成从主次表对应从属表,即大表作为主表。
- 上面那点可能有点拗口,其实就是想说明一个道理:业务虽然不是什么技术性的活儿,但是很讲究逻辑,特别细节。这也许就是bug永远存在的原因之一吧,小小的一个细节看似没关系,但是因为其他原因导致脏数据产生了连锁反应,需要通过更严谨的逻辑去排除这些数据。
- 让一列数据赋值到另一列上,需要产生一个新表。例如让A的a列等于b列,则要做自身连接,而不能直接的a=b。
- 以前在书上看到sql语句总用大写其实是有规律的,就是关键字大写,这样是为了方便区分。
- 写多表连接的sql语句时可以采用分而治之的方法,但是这要求非常熟悉简单的sql书写,并且写之前应该明确已知条件和查询的结果。(套用句式:通过什么去查找什么)
一些感想
- bug永远都改不完,我想归根到底是一开始规划不可能十全十美,导致后期迭代的时候有些东西就改不了,因为牵一发而动全身,这也正是重构出现的原因吧。
- 在校学习的内容确实也是工作的内容,所谓工作经验可能更多是对知识运用的习惯(如命名风格,代码风格等),恰恰这一点能看出一个人高下。
- 开始进入第一个瓶颈期了:可以做简单的任务,但是不愿意学习新的东西了。其实也是自己一直以来的一个缺点,沉不下心去深入了解一个知识,心太杂了,缺点什么呢?
- 一直说自己细心,当写sql语句时就发现并不是这样的,还经常开小差。
- 自己还很容易受外界声音干扰,稍微有些声音就不能专心自己的事。
一些憧憬
- 今天终于看到了所谓的服务器了~应该是Windows server系统。突然想学学什么是把服务放在云上以及怎么做,或者说是搭服务器,也许毕设就这个了~
- 接口太没技术含量了,我想学其他更高级的!但是又怕连接口都没熟悉,写个毛啊?
- 尽快通懂23种设计模式,我希望是工作3个月能完成。
2017-07-18&19的更多相关文章
- 日本IT行业劳动力缺口达22万 在日中国留学生迎来就业好时机 2017/07/18 11:25:09
作者:倪亚敏 来源:日本新华侨报 发布时间:2017/07/18 11:25:09 据日本政府提供的数据,日本2018年应届毕业生的“求人倍率”已经达到了1.78倍.换言之,就是100名大学生 ...
- Python array,list,dataframe索引切片操作 2016年07月19日——智浪文档
array,list,dataframe索引切片操作 2016年07月19日——智浪文档 list,一维,二维array,datafrme,loc.iloc.ix的简单探讨 Numpy数组的索引和切片 ...
- 九月 26, 2017 10:18:14 上午 com.sun.jersey.server.impl.application.RootResourceUriRules <init> 严重: The ResourceConfig instance does not contain any root resource classes.
Tomcat启动错误:九月 26, 2017 10:18:14 上午 com.sun.jersey.server.impl.application.RootResourceUriRules <i ...
- 2017.7.18 linux下ELK环境搭建
参考来自:Linux日志分析ELK环境搭建 另一篇博文:2017.7.18 windows下ELK环境搭建 0 版本说明 因为ELK从5.0开始只支持jdk 1.8,但是项目中使用的是JDK 1 ...
- 2017.7.18 windows下ELK环境搭建
参考来自:Windows环境下ELK平台的搭建 另一篇博文:2017.7.18 linux下ELK环境搭建 0 版本说明 因为ELK从5.0开始只支持jdk 1.8,但是项目中使用的是JDK 1.7, ...
- 湖南师范大学计算机基础课网络教学平台 版本 V2.0(2017.9.18)
湖南师范大学计算机基础课网络教学平台 版本 V2.0(2017.9.18) 开发环境: 开发工具:VS2013,数据库:Sqlserver2012 开发语言:Asp.net MVC5 ,界面UI:jq ...
- 2021.07.18 P2290 树的计数(prufer序列、组合数学)
2021.07.18 P2290 树的计数(prufer序列.组合数学) [P2290 HNOI2004]树的计数 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 重点: 1.pru ...
- 2018.07.18 [NOI2018]归程(return)(kruskal重构树)
传送门 新鲜出炉的noi2018试题. 下面讲讲这题的解法: 首先要学习一个叫做kruskal重构树的东东. 听名字就知道跟kruskal算法有关,没错,原来的kruskal算法就是用并查集实现的,但 ...
- 团队作业4——第一次项目冲刺(Alpha版本)2017.11.18
1.当天站立式会议照片 本次会议在5号公寓312召开,本次会议内容:①:熟悉每个人想做的模块.②:根据老师的要求将项目划分成一系列小任务.③:在上次会议内容完成的基础上增加新的任务. 2.每个人的工作 ...
- 毕向东_Java基础视频教程第19天_IO流(18~19)
第19天-18-IO流(流操作规律 - 1) 通过三个步骤来明确"流操作"的规律: 明确数据流的"源和目的" 源, 输入流: InputStream/Reade ...
随机推荐
- this问题
this问题 弹出层是一种很常见的页面显示部件,利用require js的模块化可以使部分功能组件重用性更高.以弹出层为例,探讨关于this的问题 首先来看这样一段代码 Html部分代码 <bo ...
- 史上最强学生管理系统之IO版
既上一博发布的ArrayList版本之后,新一版的IO版又来了,其实只是在上一个版本里面添加了IO流的内容,将存入更改的信息更新到了文件中而已,这个版本网上仍然很多,本人只是在某些方面稍加修改,因为自 ...
- svn协同开发下的dll版本管理最佳实践
作为一名开发人员,常常碰到的一个问题是,当使用svn签出一份最新代码时,经常不能一次编译通过,导致花费大量时间去解决编译问题,这里碰到的问题一般可以分为三类: 1. 由于提交代码的开发人员失误,忘记提 ...
- OpenCASCADE 公众号
OpenCASCADE 公众号 eryar@163.com 今天也注册了一个微信公众号,以后会在微信公众号中发表OpenCASCADE学习文章,Blog会与微信公众号同步.下面是微信公众号二维码,欢迎 ...
- C# 委托高级应用----线程——创建无阻塞的异步调用(二)
了解IAsyncResult 现在我们已经了解,EndInvoke可以给我们提供传出参数与更新后的ref参数:也可以向我们导出异步函数中的异常信息.例如,我们使用BeginInvoke调用了异步函数S ...
- 【HTML5】Canvas
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- mysql-5.7.17.msi安装
mysql-5.7.17.msi安装,跟着截图摩擦,一步一步是爪牙,是魔鬼的步伐 开始: 可以创建其他用户 我自己改了日志名
- redis中使用 check-and-set 操作实现乐观锁
WATCH 命令可以为 Redis 事务提供 check-and-set (CAS)行为. 被 WATCH 的键会被监视,并会发觉这些键是否被改动过了. 如果有至少一个被监视的键在 EXEC 执行之前 ...
- MySQL 加锁处理分析-转载
来自何登成的技术博客 1.1 MVCC:Snapshot Read vs Current Read 2 1.2 Cluster Index:聚簇索引 3 1.3 ...
- 数据库SQL优化
1.对查询进行优化,要尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索 ...