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 ...
随机推荐
- ElasticSearch和ElasticSearch Head环境搭建和数据模拟
首先elasticsearch-6.0.0\bin目录下运行elasticsearch服务 修改elasticsearch-6.0.0\elasticsearch.yml文件 在文件最后加入下面代码, ...
- Struts2学习笔记整理(三)
Struts2的输入校验 之前对请求参数的输入校验一般分为两部分:1.客户端校验,也就是我们写js代码去对客户的误操作进行过滤 2.服务端校验, 这是整个应用组织非法数据的最后防线. Struts2 ...
- 当前时间、前n天、后n天、取前n条记录、从第n条开始取m条
当前时间:NOW() 前n天:DATE_SUB(NOW(),INTERVAL n DAY) 后n天:DATE_SUB(NOW(),INTERVAL -n DAY) 取前n条记录:SELECT * FR ...
- 安装cocoa pods时出现Operation not permitted - /usr/bin/xcodeproj的问题
安装cocoa pods时, 在命令行中输入: 安装:sudo gem install cocoapods报Operation not permitted - /usr/bin/xcodeproj这个 ...
- [array] leetcode - 48. Rotate Image - Medium
leetcode - 48. Rotate Image - Medium descrition You are given an n x n 2D matrix representing an ima ...
- mybatis源码分析(一)
mybatis源码分析(sqlSessionFactory生成过程) 1. mybatis框架在现在各个IT公司的使用不用多说,这几天看了mybatis的一些源码,赶紧做个笔记. 2. 看源码从一个d ...
- jquery提供的插件无法删除cookie的解决办法
之前使用jquery的cookie插件提供的 $.cookie("key",null)方法删除cookie,结果发现代码中的cookie一直无法删除,导致后面的种种问题. 经过各种 ...
- [编织消息框架][JAVA核心技术]动态代理应用11-水平扩展实现
由于示例,远程服务地址配置在properties文件,通过QMConfig类加载,最优方式是上节介绍过,放在共享内存上,只需要维护一份数据即可,如放在redis上 /** 服务地址<servic ...
- 关于java 定时任务
几种任务调度的 Java 实现方法与比较 综观目前的 Web 应用,多数应用都具备任务调度的功能.本文由浅入深介绍了几种任务调度的 Java 实现方法,包括 Timer,Scheduler, Quar ...
- Mac说——关闭SIP
今天在安装keras的时候总是提示numpy无法安装,百度了下,说是新版本的os系统加入了spi机制. 什么是SIP: 系统集成保护(System Integrity Protection,SIP), ...