- 博客(14)
- 资源 (27)
- 收藏
- 关注
转载 10条SQL技巧
一、一些常见的SQL实践(1)负向条件查询不能使用索引select * from order where status!=0 and stauts!=1not in/not exists都不是好习惯可以优化为in查询:select * from order where status in(2,3) (2
2017-07-30 11:58:23 278
转载 MySQL的or/in/union与索引优化
假设订单业务表结构为:order(oid, date, uid, status, money, time, …)其中:oid,订单ID,主键date,下单日期,有普通索引,管理后台经常按照date查询uid,用户ID,有普通索引,用户查询自己订单status,订单状态,有普通索引,管理后台经常按照status查询mon
2017-07-30 11:41:55 503
转载 HashMap在Java1.7与1.8中的区别
JDK1.7中使用一个Entry数组来存储数据,用key的hashcode取模来决定key会被放到数组里的位置,如果hashcode相同,或者hashcode取模后的结果相同(hash collision),那么这些key会被定位到Entry数组的同一个格子里,这些key会形成一个链表。在hashcode特别差的情况下,比方说所有key的hashcode都相同,这个链表可能会很长,
2017-07-17 10:00:53 1476
转载 ThreadLocal工作原理
在这篇文章中,总结了一下面试过程中遇到的关于ThreadLocal的内容。总体上说,这样回答,面试算是过得去了。但是,这样的回答,明显仅仅是背会了答案,而没有去研究ThreadLocal的最根本的实现原理。一共有两个问题。1、每个线程的变量副本是存储在哪里的?2、变量副本是怎么从共享的那个变量赋值出来的?源码中的threadlocal的初始值是什么时机设置的?===========
2017-07-14 08:47:01 94
转载 SQL调优
阅读目录(1)选择最有效率的表名顺序(只在基于规则的优化器中有效)(2)WHERE子句中的连接顺序(3)SELECT子句中避免使用 ‘ * ‘(4)减少访问数据库的次数(5)在SQL*Plus , SQL*Forms和Pro*C中重新设置ARRAYSIZE参数, 可以增加每次数据库访问的检索数据量 ,建议值为200(6)使用DECODE函数来减少处理时间(7) 整合简单,无关联的数据库
2017-07-13 14:59:39 330
转载 库存扣多了,到底怎么整
业务复杂、数据量大、并发量大的业务场景下,典型的互联网架构,一般会分为这么几层:调用层,一般是处于端上的browser或者APP站点层,一般是拼装html或者json返回的web-server层服务层,一般是提供RPC调用接口的service层数据层,提供固化数据存储的db 对于库存业务,一般有个库存服务,提供库存的查询、
2017-07-11 12:37:07 285
转载 单KEY业务,数据库水平切分架构实践
本文将以“用户中心”为例,介绍“单KEY”类业务,随着数据量的逐步增大,数据库性能显著降低,数据库水平切分相关的架构实践:如何来实施水平切分水平切分后常见的问题典型问题的优化思路及实践 一、用户中心用户中心是一个非常常见的业务,主要提供用户注册、登录、信息查询与修改的服务,其核心元数据为:User(uid, login_n
2017-07-11 12:31:18 343
转载 浅谈CAS在分布式ID生成方案上的应用
近几篇文章聊CAS被骂得较多,今天还是聊CAS,谈谈CAS在一种“分布式ID生成方案”上的应用。 所谓“分布式ID生成方案”,是指在分布式环境下,生成全局唯一ID的方法。 可以利用DB自增键(auto inc id)来生成全局唯一ID,插入一条记录,生成一个ID:这个方案利用了数据库的单点特性,其优点为:无
2017-07-11 12:18:37 476
转载 CAS下ABA问题及优化方案
一、并发业务场景库存业务,stock(sid, num),其中:sid为库存idnum为库存值如上图所示,两个并发的查询库存操作,同时从数据库都得到了库存是5。 接下来用户发生了并发的库存扣减动作:如上图所示:用户1购买了3个库存,于是库存要设置为2用户2购买了2个库存,于是
2017-07-11 11:37:49 342
转载 MySQL双主一致性架构优化
一、双主保证高可用MySQL数据库集群常使用一主多从,主从同步,读写分离的方式来扩充数据库的读性能,保证读库的高可用,但此时写库仍然是单点。 在一个MySQL数据库集群中可以设置两个主库,并设置双向同步,以冗余写库的方式来保证写库的高可用。 二、并发引发不一致数据冗余会引发数据的一致性问题,因为数据的同步有一个时间差,并发的写入可能导致数据同步失败,
2017-07-10 15:36:40 510
转载 MySQL冗余数据的三种方案
一,为什么要冗余数据互联网数据量很大的业务场景,往往数据库需要进行水平切分来降低单库数据量。水平切分会有一个patition key,通过patition key的查询能够直接定位到库,但是非patition key上的查询可能就需要扫描多个库了。此时常见的架构设计方案,是使用数据冗余这种反范式设计来满足分库后不同维度的查询需求。
2017-07-10 15:32:46 8202
转载 一分钟了解索引技巧
花1分钟时间,了解聚集索引,非聚集索引,联合索引,索引覆盖。 举例,业务场景,用户表,表结构为:t_user(uid primary key,login_name unique,passwd,login_time,age,…); 聚集索引(clustered index):聚集索引决定数据在磁盘上的
2017-07-10 15:29:47 318
转载 工作线程数究竟要设置为多少
一、需求缘起Web-Server通常有个配置,最大工作线程数,后端服务一般也有个配置,工作线程池的线程数量,这个线程数的配置不同的业务架构师有不同的经验值,有些业务设置为CPU核数的2倍,有些业务设置为CPU核数的8倍,有些业务设置为CPU核数的32倍。“工作线程数”的设置依据是什么,到底设置为多少能够最大化CPU性能,是本文要讨论的问题。 二、共性认知
2017-07-10 15:26:10 774
转载 1对多业务,数据库水平切分架构一次搞定
本文将以“帖子中心”为例,介绍“1对多”类业务,随着数据量的逐步增大,数据库性能显著降低,数据库水平切分相关的架构实践:如何来实施水平切分水平切分后常见的问题典型问题的优化思路及实践 一、什么是1对多关系所谓的“1对1”,“1对多”,“多对多”,来自数据库设计中的“实体-关系”ER模型,用来描述实体之间的映射关系。
2017-07-10 15:20:36 987
Java开发手册
2017-03-01
android-support-v4-v7-v13-v14-v17兼容包
2016-04-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人