工作的几个技术小点总结
来源:互联网 发布:大数据金融的优缺点 编辑:程序博客网 时间:2024/05/20 23:59
这篇文章,主要是总结一下我最近工作中遇到的一些之前没有接触过的东西
1.mysql数据引擎
mysql 支持几种引擎,我们常见到的引擎ISAM 和INNODB,
其他详细介绍可以参看其他文章,很多介绍比如
http://www.cnblogs.com/xulb597/archive/2012/05/25/2518118.html
这里我想说的就是,ISAM 不支持外键。所以,当你发现设置外键的时候,没有效果,那么就要坚持你的数据库引擎了。改回INNodb
如何更改有几种办法,就是在创建表的时候指定,比如 CREATE TABLE mytable (id int, title char(20)) ENGINE = INNODB。
如果已经建好表了,那么就,set type=innodb的方式方法。 更加具体可以参看文章
http://space.itpub.net/22359110/viewspace-718334
2.会议室预订问题
会议室预定问题就是查询时候某个时间段有冲突的问题。
问题环境
mytable
idbegintimeendtime 110001500 215012000这里,为了方便,我直接把时间存储为长整形。
我们想要查询的时间段为 bTime,eTime.
解决思路
首先,我用了一个最笨的方法的sql语句如下
select * from mytable where ( bTime >=begintime and bTime <=endtime) or (eTime >=begintime and eTime <=endtime) or (bTime <=begintime and bTime >=endtime)
我发现这个sql语句太长了,应该会有优化的地方
于是以下sql为
select * from mytable where bTime <=endTime and eTime >=beginTime;
这样就更加完美了。这里已经保证了
bTime <eTime;
3.Redis 多线程问题
项目中使用了Redis作为nosql数据库。直接放入内存中,因为我们的项目是整体框架是多线程的环境,因此,在和redis交互的时候,涉及使用的 变量
redisAsyncContext* _redis_context; 内部的一个接收缓冲区出现coredump的问题。
因此在使用该变量的时候,一定要保证他的只有一个线程处理,就是加锁,互斥访问,或者使用线程的使用变量。
因为redis这块我还没有研究深入,因此我还需要继续的学习吧。
4.gdb 多线程调试。
之前做游戏的时候,因为业务逻辑的原因,都是搞单线程的的,而且还是纯C语言的,因此调试起来很方便吧。但是现在的框架是多线程,因此调试的时候遇到一些比较烦的问题,不过没关系
使用一下命令就很好了。
先介绍一下GDB多线程调试的基本命令。
info threads 显示当前可调试的所有线程,每个线程会有一个GDB为其分配的ID,后面操作线程的时候会用到这个ID。 前面有*的是当前调试的线程。
thread ID 切换当前调试的线程为指定ID的线程。
break thread_test.c:123 thread all 在所有线程中相应的行上设置断点
thread apply ID1 ID2 command 让一个或者多个线程执行GDB命令command。
thread apply all command 让所有被调试线程执行GDB命令command。
set scheduler-locking off|on|step 估计是实际使用过多线程调试的人都可以发现,在使用step或者continue
5.json数据格式
json数据格式,我大学的时候就已经开始接触了。没想到这个项目又有新的接触,不过我之前是asp解析json,现在是c++解析,使用的开源框架是jason,这个东西,挺有意思的,欢迎大家用一下。
6.需要学习的技术内容
项目使用了好多开源框架,比如boost,openssl,redis开源nosql等等很多,要学习的东西还是太多,对我这个工作不长的人,压力很巨大。
一直感兴趣于linux内核的网络模块。也没有太多时间看和学习。
7.项目框架的细节介绍
这篇文章,先不介绍了。有时间 我会把几个技术要点一一写出来,在研究很透彻的情况下。
比如如何实现定时器,如何实现网络的事件轮询。项目里如何对c++管理资源,如何实现异步的形式等等
8.工作感受
有时候受到压力,感觉自己不合适做技术。因为我本身也不是计算机科班出身。学习计算机,学习linux c/c++纯是为了找工作而已。能赚多钱。
不过,既然选择了,就要把它做好,将来可能不一定完全从事这块,但是努力吧。不管受到什么样的压力和歧视。
加油吧。
2013/11/23
- 工作的几个技术小点总结
- python slice的几个小点总结
- python slice的几个小点总结
- python slice的几个小点总结
- python slice的几个小点总结
- python slice的几个小点总结
- html--的几个小点
- android 访问通讯录时总结的几个小点
- Android 中 有关Button的几个小点
- 快速理解wcf的几个小点
- TinyOS nesc的几个语法小点
- alertdialog创建对话框的几个小点
- 工作中总结的几小点,在此记录,也供大家参考
- 工作几个月了,是时候对自己的技术来个总结了!
- 工作中遇到的几个的总结
- 关于内存的一小点总结
- C++ Primer的一小点总结
- 一些关于进程调度的小点总结
- 软件开发流程总结
- javascript的Math和Global
- struts1
- Android Service完全解析,关于服务你所需知道的一切(上)
- 学习网址汇总
- 工作的几个技术小点总结
- 《CSS设计指南》读书笔记(一)第一章HTML标记与文档结构
- java spring Bean Autowiring 自动依赖装配
- vmware-tools安装指南
- UVA 10608 - Friends (并查集)
- cent os 中 apache 常用配置
- vijos p1208 博弈论
- 物体的旋转与移动
- NOYJ 63小猴子