最近加了几个QQ群,貌似发现自己知道的太少了,离我现在所谓的职位技能差太多了,有太多的需要去学习,太多的青春给我荒废了。
话说回来,今天的话题是关于大型交互型网站的优化的。
第一部分 关于 代码:
实则上很多代码 都是可以比较效率的,虽然他们都是C++封装好的1个个函数,虽然不要你去分析底层函数如何去写,但也需要去了解他们的运行速度。
经常的 使用的代码都是差不多的,就如 循环 和 迭代 还有其他 在这里面 迭代是最快的,它利用C++指针的指向 将光标移动 ,当移动到末尾没有的时候就停止了,而循环的话 需要去判断指针是否越界,或者说是指针还需要递增等等,运行速度远不如迭代。
如同判断的 if 和 switch ,想来 switch 的效率远比if的高 ,代码也看上去整洁很多,如 if (){}elseif(){}elseif(){} 看到这个结构就让人头疼的,不推荐使用。 switch 则清晰了很多。
代码清晰的同时还能让运行效率更高何乐而不为呢?
第二部分 关于数据库读取:
很多时候我们做查询操作的时候时候 喜欢用 select a , b,c from table 实则 select * from table 更是会快更多,因为没有索引 ,select * 来得更效率,select count(*) 亦如此。
很多的时候我们喜欢用模糊查询,因为那样简单对于开发来说 简单的一堆东西都抛给数据库去做了,可想运行效率, 更多的时候精确的 字符串类型的大小比较会更快,大概 用精确的大小比较 比like 要快5-10倍 或者更多,这已经不是一个数量级的了。
很多的时候 我们喜欢 批量查询 ,取出一个又一个数据对象的值select * from table where a=”x” and a=”c” 等等 这样做的效率远不如 select * from table where a in (“x”,”c”)
很多的时候我们优化的优化的时候都说要建立索引,而索引的消耗也是巨大的,对于每次的插入数据那都是成倍的增加的,当然有了多条件索引以后 查询起来是要快很多 ,同样的一条sql语句 在没有索引 的情况下 查询 效率。。在百万条记录里的效率可以用1000倍效率差别来说,适当的建立索引,因为它会影响你的插入开销。
今天这里讲的只是第一部分。
有数据依靠才能做到最好的优化【一】
有数据依靠才能做到最好的优化【二】 未写
关于此话题的由来:
最近在闹减肥,早上 问同事我最近 有什么变化没,同事来了句,你丫又胖了,顿时两眼黑线啊。。。。。嘟! 在没有数据支撑的情况下,减肥也是无力的,肉眼的感觉不一定是对的,继续加油减肥吧,貌似肚子我感觉是小了点,以后可乐烟看来得改成 烟民了 哎 。
话说,你的博是我抢的第6个沙发!
学无止境!板凳一下
吧照片传上来。
要不我给你个小白鼠,你联系下优化吧。
不断的武装,使自己更加strong
学习了,对数据库效率的东西了解不多。
优化很有用,学习了。
迭代一定比循环快?
迭代指针的移动不也得每次判断是否迭代完了?