Lending Club 公司2007-2018贷款业务初步分析

数据来源:https://www.kaggle.com/wendykan/lending-club-loan-data

数据描述:LendingClub是一家美国P2P借贷公司,总部位于加利福尼亚州旧金山。这是第一个对等网络贷款人登记其产品为证券与证券交易委员会(SEC),并在二级市场上提供贷款交易。LendingClub是世界上最大的点对点借贷平台。这些文件包含 LENGDING CLUB 公司 2007-2015 年间发放的所有贷款的完整贷款数据,包括当前贷款状态(“当前”,“延迟”,“已全额付款”等)和最新付款信息。该文件是约226万个观测值和145个字段的矩阵,字段包括信用评分,财务查询数量,包括邮政编码的地址,状态以及收款等信息。  数据字段字典在单独的文件中提供。

一、LENDING CLUB 背景了解

1.1 公司发展历程

图1 Lending Club 发展历程

  1. 2007年,Lending Club 成立,主营业务是为市场提供P2P贷款的平台中介服务。与已运营两年的占据美国 P2P 市场最大份额的 Prosper 形成差异化竞争。初期为了对平台进行第一轮推广,希望利用社交网络发现潜在客户,与 Facebook 合作,但其用户大部分为年轻人,不具备贷款投资能力,这样的合作为其带来了巨大的点击率但没有带来足够的贷款量增长。9月份,Lending Club 对社交方式进行调整,投向更多社交平台以外的用户,自此快速发展。
  2. 2008年3月,美国证券交易委员会 SEC  将 Lending Club 平台出手的票据认定为票据,需要平台对其进行注册。4月7日,进入半年的注册等待期。完成 SEC 注册后,为了增加贷款投资的流动性,Lending Club 与经济交易商 FOLIOfn (平台运营者,只撮合双方交易,不参与做市)合作建立了二级交易平台。二级交易平台的建立,使投资者持有的收益权凭证能够和股票一样在二级市场上交易,迅速变现。
  3. 2011年11月,Lending Club 创办了全资子公司 LC Advisors,LC Advisors是一家 SEC 认可的投资咨询公司,专门负责管理 Lending Club 大型投资者的投资。
  4. 2014年12月,Lending Club 在纽交所上市,成为当年最大的科技股IPO。
  5. 2015年2月3日起,阿里巴巴宣布将和 Lending Club 合作,为向中国供应商采购商品的美国小企业提供贷款。
  6. 2015年2月10日,LC 宣布和美国 200 家银行达成合作关系。BancAlliance 是一个由资产2亿到100亿美元不等的200家社区银行组成的联盟。
  7. 2016年5月9日,Lending Club 首席执行官 Renaud Laplanche 宣布辞职。在一场内部调查中,董事会发现公司存在向机构投资者舞弊,数据造假等问题。另外 Renaud Laplanche 还未能尽到披露义务,说明自己已持有一家投资基金的股份,并主导了Lending Club对这家公司的投资。
  8. 2016-2018,Lending Club 股价下跌,治理丑闻,此时,其他许多 P2P 公司也遇到了困难。
  9. 2019年12月,执行官Valerie Kay指出,LendingClub已通过一个名为``Scale‘‘的新项目将重点转移到机构投资者以及其传统的点对点贷款,该项目专注于提供代表性贷款样本而不是个人贷款。LendingClub在2018年的年度贷款发放额已增长至108亿美元。

1.2 贷款业务过程

图2 Lending Club 贷款业务过程

贷款人希望在 Lending Club 平台借款时,首先需要在平台上发布借款请求,请求中包含很多有关借款人的信息,如借款人的 FICO 分数,信用级别,借款目的,借款期限,借款金额,借款进度,借款人收入,月还款额,债务收入比,就业状况,信用记录等。但是,投资者和借款人在 Lending Club 上都是匿名的,双方在交易过程中并不清楚对方的真实身份,这正是 Lending Club 要为客户保护的。投资人(出借者)可以浏览借款列表选中自己认可的借款人来投资,也可以根据自己的偏好设定投资组合。待各个投资者承诺的出借金额的累加达到了借款人所需要的总金额,或自借款请求列表发布日起已累计达 14 天,借款人资金募集就完成或结束。随后,Lending Club 和 WebBank 就会开始对分别对借款人和投资者发放贷款和票据。一般来说,一次借贷短则几个小时最多 14 天,平均五到六天就可以完成。

二、 LENDING CLUB 数据分析

2.1 分析框架

数据提供的字段有145个之多,为了对数据有个初步了解,可以使用谷歌翻译直接对数据字典进行翻译,挑选出与用户画像、业务最相关的一些字段,如下图3。

图3 Lending Club 初步分析框架

2.2 分析结论

用户画像

  1. 加利福尼亚用户较多,公司总部所在处,业务开展较深入
  2. 用户大多工龄超过十年,30-40 左右的年纪
  3. 用户多是教师、管理者、自由职业者
  4. 用户年收入左偏,均收入 5-6 万美元
  5. 一半用户处于还房贷阶段,少数人拥有完整房产
  6. 大多数用户无贬损公共记录,行为良好
  7. 用户的债务收入比成阶梯型,大部分入不敷出
  8. 用户贷款多用于债务和信用卡偿还

业务分析

  1. 贷款额相关
    • Lending Club 公司贷款业务以贷款用户为基准,发放的贷款额、投资人投资额与用户贷款趋势结构一致
    • Lending Club 贷款增长率前几年呈翻倍增长趋势,增长率连年降低,2016年达到最低(负增长率,与爆出的丑闻有直接关系)
    • Lending Club 公司贷款业务金额和人数逐年上涨,
    • 2018年贷款人数达到50万,贷款总额接近80亿美元
  1. Lending Club 贷款期限分为36个月和60个月,七成用户选择36个月的短期贷款
  2. Lending Club 客户贷款利率左偏,最小5%,最高能到30+%,平均贷款利率在13%左右
  3. Lending Club 客户贷款等级主要是A、B、C、D
  4. Lending Club 客户贷款状态良好,绝大多数已付清或者在正常付款中,质量不好的贷款在2015年后逐年下降

2.3 分析报告

附:

贷款状态说明:

  1. Current  正常还贷中
  2. Fully Paid 付清
  3. Issued 发放
  4. Charged Off  销账,已经收不回来的贷款
  5. Late (31-120 days) 延期
  6. Late (16-30 days) 延期
  7. In Grace Period 宽限期
  8. Does not meet the credit policy. Status:Charged Off 不符合信贷政策,销账
  9. Does not meet the credit policy. Status:Fully Paid 不符合信贷政策,付清
  10. Default  坏账

程序:

#coding:utf-8

import pandas as pd
import numpy as np
import time
import matplotlib.pyplot as plt
import seaborn as sns

plt.rcParams[‘font.sans-serif‘] = [‘SimHei‘]  # 用来正常显示中文标签
plt.rcParams[‘axes.unicode_minus‘] = False    # 用来正常显示负号,#有中文出现的情况,需要u‘内容‘

start_time = time.process_time()

# # 读取数据
# loan = pd.read_csv(‘loan.csv‘,low_memory = False)
# df = loan[[‘issue_d‘,‘addr_state‘,‘emp_length‘, ‘emp_title‘, ‘annual_inc‘,‘home_ownership‘,
#          ‘pub_rec‘, ‘dti‘,‘purpose‘,
#          ‘loan_amnt‘,‘funded_amnt‘,‘funded_amnt_inv‘,‘term‘, ‘grade‘,‘int_rate‘,‘loan_status‘,
#          ‘tot_cur_bal‘,‘avg_cur_bal‘, ‘total_acc‘, ‘total_bc_limit‘,]].copy()
#
# # 将 ‘issue_d’ str形式的时间日期转换
# dt_series = pd.to_datetime(df[‘issue_d‘])
# df[‘year‘] = dt_series.dt.year
# df[‘month‘] = dt_series.dt.month
#
# # 根据收入 ‘annual_inc‘ 定义收入“低、中、高”
# # <10万 --> low , 10万~20万 --> medium , >20 万 --> high
# df[‘income_category‘] = np.nan
# lst = [df]
# for col in lst:
#     col.loc[col[‘annual_inc‘] <= 100000, ‘income_category‘] = ‘Low‘
#     col.loc[(col[‘annual_inc‘] > 100000) & (col[‘annual_inc‘] <= 200000), ‘income_category‘] = ‘Medium‘
#     col.loc[col[‘annual_inc‘] > 200000, ‘income_category‘] = ‘High‘
#
# # 根据贷款状态 ‘loan_status’ 定义好坏贷款
# bad_loan = ["Charged Off",
#             "Default",
#             "Does not meet the credit policy. Status:Charged Off",
#             "In Grace Period",
#             "Late (16-30 days)",
#             "Late (31-120 days)"]
# df[‘loan_condition‘] = np.nan
#
# def loan_condition(status):
#     if status in bad_loan:
#         return ‘Bad Loan‘
#     else:
#         return ‘Good Loan‘
#
# df[‘loan_condition‘] = df[‘loan_status‘].apply(loan_condition)
# df[‘loan_condition_int‘] = np.nan
# for col in lst:
#     col.loc[df[‘loan_condition‘] == ‘Good Loan‘, ‘loan_condition_int‘] = 0  # Negative (Bad Loan)
#     col.loc[df[‘loan_condition‘] == ‘Bad Loan‘, ‘loan_condition_int‘] = 1  # Positive (Good Loan)
# df[‘loan_condition_int‘] = df[‘loan_condition_int‘].astype(int)
#
# df.to_pickle("first_df.pkl")

# 数据查看

df = pd.read_pickle(‘first_df.pkl‘)
# print(df.head())
# print(df.info())
# print(df.describe())
# print(df.isna().sum())          # 检查空值情况

# # 1 客户画像
# # 1.1 地域分布
# fig1 = plt.figure()
# ax1 = fig1.add_subplot(111)
# df[‘addr_state‘].value_counts()[0:19].plot(kind=‘bar‘,color="royalblue",fontsize=12)
# plt.title("2007-2015 Lending Club 客户地域分布情况",fontsize=16)
# plt.subplots_adjust(top=1,bottom=0,left=0,right=1,hspace=0,wspace=0)
# plt.savefig("1.1 2007-2015 Lending Club 客户地域分布情况.png",dpi=1000,bbox_inches = ‘tight‘)#解决图片不清晰,不完整的问题
# # plt.show()
#
# # 1.2 工作年限分布
# fig2 = plt.figure()
# ax1 = fig2.add_subplot(111)
# df[‘emp_length‘].value_counts().plot(kind=‘bar‘,color="royalblue",fontsize=12)
# plt.title("2007-2015 Lending Club 客户工作年龄分布情况",fontsize=16)
# plt.subplots_adjust(top=1,bottom=0,left=0,right=1,hspace=0,wspace=0)
# plt.savefig("1.2 2007-2015 Lending Club 客户工作年龄分布情况.png",dpi=1000,bbox_inches = ‘tight‘)#解决图片不清晰,不完整的问题
# # plt.show()
#
# # 1.3 职业分布
# fig3 = plt.figure()
# ax1 = fig3.add_subplot(111)
# df[‘emp_title‘].value_counts()[0:14][::-1].plot(kind=‘barh‘,color="royalblue",fontsize=12)
# plt.title("2007-2015 Lending Club 客户职业分布情况",fontsize=16)
# plt.subplots_adjust(top=1,bottom=0,left=0,right=1,hspace=0,wspace=0)
# plt.savefig("1.3 2007-2015 Lending Club 客户职业分布情况.png",dpi=1000,bbox_inches = ‘tight‘)#解决图片不清晰,不完整的问题
# # plt.show()
#
# # 1.4 收入分布
# fig4 = plt.figure()
# ax1 = fig4.add_subplot(111)
# new_ticks=np.linspace(0,500000,11)
# plt.hist(df[‘annual_inc‘].dropna(),range=(0,500000),bins=60,color="royalblue")
# plt.xticks(new_ticks)
# plt.title("2007-2015 Lending Club 客户年收入($)分布情况",fontsize=16)
# plt.subplots_adjust(top=1,bottom=0,left=0,right=1,hspace=0,wspace=0)
# plt.savefig("1.4 2007-2015 Lending Club 客户年收入($)分布情况.png",dpi=1000,bbox_inches = ‘tight‘) # 解决图片不清晰,不完整的问题
# # plt.show()
#
# # 1.5 住房类型分布
# fig5 = plt.figure()
# ax1 = fig5.add_subplot(111)
# df[‘home_ownership‘].replace({"MORTGAGE":"还贷","RENT":"租房","OWN":"自有住房","ANY":"其他","OTHER":"其他","NONE":"其他"},inplace=True)
# plt.pie(df[‘home_ownership‘].dropna().value_counts(),labels=["还贷","租房","自有住房","其他"],autopct="%1.1f%%")
# plt.title("2007-2015 Lending Club 客户住房分布情况",fontsize=16)
# plt.subplots_adjust(top=1,bottom=0,left=0,right=1,hspace=0,wspace=0)
# plt.savefig("1.5 2007-2015 Lending Club 客户住房分布情况.png",dpi=1000,bbox_inches = ‘tight‘) # 解决图片不清晰,不完整的问题
# # plt.show()
#
# # 1.6 贬损公共记录
# fig6 = plt.figure()
# ax1 = fig6.add_subplot(111)
# pub_v=df[‘pub_rec‘].value_counts()
# x_ticks=list(range(6))
# pub_v[0:5].plot(kind=‘bar‘,color=‘royalblue‘,fontsize=12)
# plt.xticks(x_ticks,rotation=0)
# pub_p=pub_v/pub_v.sum()     # 计算所占百分比
# pub_p=pub_p.apply(lambda x:format(x,‘.2%‘))[0:5] # 转换百分比显示
# for i in x_ticks:
#     plt.text(i,pub_v[i]+1.2, pub_p[i], ha=‘center‘, va= ‘bottom‘,fontsize=12)
# plt.title("1.6 2007-2015 Lending Club 贬损公共记录分布情况",fontsize=16)
# plt.subplots_adjust(top=1,bottom=0,left=0,right=1,hspace=0,wspace=0)
# plt.savefig("1.6 2007-2015 Lending Club 贬损公共记录分布情况.png",dpi=1000,bbox_inches = ‘tight‘) # 解决图片不清晰,不完整的问题
# # plt.show()
#
# # 1.7 债务收入比
# fig7=plt.figure()
# ax1=fig7.add_subplot(111)
# new_ticks=np.linspace(-2,15,18)
# plt.hist(df[‘dti‘][df[‘dti‘]<10].dropna(),range=(-2,15),bins=100,color="royalblue")
# plt.xticks(new_ticks)
# plt.title("2007-2015 Lending Club 客户每月债务/收入分布情况",fontsize=16)
# plt.subplots_adjust(top=1,bottom=0,left=0,right=1,hspace=0,wspace=0)
# plt.savefig("1.7 2007-2015 Lending Club 客户每月 债务-收入比分布情况.png",dpi=1000,bbox_inches = ‘tight‘)#解决图片不清晰,不完整的问题
# # plt.show()
#
#
# # 1.8 贷款目的
# fig8 = plt.figure()
# ax1 = fig8.add_subplot(111)
# df[‘purpose‘].value_counts(ascending=True).plot(kind=‘barh‘,fontsize=12,color="royalblue")
# plt.title("2007-2015 Lending Club 贷款目的分布情况",fontsize=16)
# plt.subplots_adjust(top=1,bottom=0,left=0,right=1,hspace=0,wspace=0)
# plt.savefig("1.8 2007-2015 Lending Club 贷款目的分布情况.png",dpi=1000,bbox_inches = ‘tight‘)#解决图片不清晰,不完整的问题
# plt.show()

#
#
# # 2 业务分析
# # 2.1 贷款额(总&平均)
# fig1, ax = plt.subplots(1, 3, figsize=(16,5))
# loan_amount = df["loan_amnt"].values
# funded_amount = df["funded_amnt"].values
# investor_funds = df["funded_amnt_inv"].values
#
# sns.distplot(loan_amount, ax=ax[0], color="royalblue")
# ax[0].set_title("借款人申请的借款额", fontsize=16)
# sns.distplot(funded_amount, ax=ax[1], color="darkorange")
# ax[1].set_title("公司提供的贷款额", fontsize=16)
# sns.distplot(investor_funds, ax=ax[2], color="darkcyan")
# ax[2].set_title("当前贷款中投资人提供的贷款额", fontsize=16)
# plt.subplots_adjust(top=1,bottom=0,left=0,right=1,hspace=0.2,wspace=0.2)
# plt.savefig("2.1 2007-2015 Lending Club 贷款情况了解.png",dpi=1000,bbox_inches = ‘tight‘)#解决图片不清晰,不完整的问题
# # plt.show()

# # 每年贷款增长率
# df_g = df[[‘year‘,‘loan_amnt‘]].groupby([‘year‘]).sum().reset_index()
# df_g = df_g.rename(columns={‘loan_amnt‘:‘loan_amnt_sum‘})
# df_g[‘loan_amnt_pro‘] = -df_g[‘loan_amnt_sum‘].diff(-1)/df_g.iloc[:,1]*100
#
# fig11 = plt.figure(figsize=(8,8))
# plt.title("每年贷款请求额总和 & 增长率",fontsize=20)
# plt.bar(df_g.iloc[:,0],df_g.iloc[:,1],color="royalblue")
# plt.ylabel("贷款额总和",fontsize=16)
# plt.xticks(df_g.iloc[:,0])
# plt.twinx()
# plt.plot(df_g.iloc[1:,0],df_g.iloc[:-1,2],color="darkorange")
# plt.ylabel("增长率 (%)",fontsize=16)
# plt.subplots_adjust(top=1,bottom=0,left=0,right=1,hspace=0.2,wspace=0.2)
# plt.savefig("2.11 2007-2015 Lending Club 每年贷款请求额总和&增长率.png",dpi=1000,bbox_inches = ‘tight‘)#解决图片不清晰,不完整的问题
# # plt.show()

# # 2.2 贷款人数
# fig2,ax=plt.subplots(1,2,figsize=(12,5))
# sns.barplot(‘year‘, ‘loan_amnt‘, data=df[[‘year‘,‘loan_amnt‘]],ax=ax[0])
# ax[0].set_title(‘每年申请贷款额度‘, fontsize=16)
# ax[0].set_ylabel("平均额度",fontsize=12)
# sns.countplot(‘year‘,data=df[[‘year‘,‘loan_amnt‘]],ax=ax[1])
# ax[1].set_title(‘每年申请贷款人数‘, fontsize=16)
# ax[1].set_ylabel("申请人数",fontsize=12)
# plt.subplots_adjust(top=1,bottom=0,left=0,right=1,hspace=0.2,wspace=0.2)
# plt.savefig("2.2 2007-2015 Lending Club 每年申请贷款平均额和申请贷款人数.png",dpi=1000,bbox_inches = ‘tight‘)#解决图片不清晰,不完整的问题
# # plt.show()
#
#
# # 2.3 贷款期限
# fig3 = plt.figure()
# colors = [‘royalblue‘,‘darkorange‘]
# df[‘term‘].value_counts().plot(kind=‘pie‘,explode=(0.05,0),autopct="%1.1f%%",colors=colors,fontsize=12)
# plt.title("2007-2015 Lending Club 贷款期限分布",fontsize=16)
# plt.subplots_adjust(top=1,bottom=0,left=0,right=1,hspace=0.2,wspace=0.2)
# plt.savefig("2.3 2007-2015 Lending Club 贷款期限分布.png",dpi=1000,bbox_inches = ‘tight‘)#解决图片不清晰,不完整的问题
# # plt.show()
#
# # 2.4 贷款等级 grade
# fig4 = plt.figure()
# ax1 = fig4.add_subplot(111)
# df[‘grade‘].value_counts().plot(kind=‘bar‘,color="royalblue",fontsize=12)
# plt.title("2007-2015 Lending Club 贷款等级分布情况",fontsize=16)
# plt.subplots_adjust(top=1,bottom=0,left=0,right=1,hspace=0,wspace=0)
# plt.savefig("2.4 2007-2015 Lending Club 贷款等级分布分布情况.png",dpi=1000,bbox_inches = ‘tight‘)#解决图片不清晰,不完整的问题
# # plt.show()
#
# # 2.5 贷款利率 int_rate
# fig5 = plt.figure()
# ax1 = fig5.add_subplot(111)
# new_ticks=np.linspace(4,32,29)
# plt.hist(df[‘int_rate‘],range=(4,32),bins=50,color="royalblue")
# plt.xticks(new_ticks)
# plt.title("2007-2015 Lending Club 客户贷款利率分布情况",fontsize=16)
# plt.subplots_adjust(top=1,bottom=0,left=0,right=1,hspace=0,wspace=0)
# plt.savefig("2.5 2007-2015 Lending Club 客户贷款利率分布情况.png",dpi=1000,bbox_inches = ‘tight‘)#解决图片不清晰,不完整的问题
# # plt.show()
#
#
# # 2.6 贷款状态 loan_status
# fig6, ax = plt.subplots(1,3, figsize=(24,8))
# colors = ["royalblue", "darkorange"]
# statu_labels = [‘付清‘ ,‘还款中‘ ,‘Charged Off‘,
#                 ‘逾期(31-120天)‘ ,‘宽限期‘ ,‘逾期(16-30天)‘ ,
#                 ‘不符政策-付清‘,‘不符政策-Charged Off‘,‘坏账‘]
# labels =["Good Loans", "Bad Loans"]
# print(df[‘loan_status‘].unique())
# plt.suptitle(‘贷款状态‘, fontsize=16)
#
# df["loan_status"].value_counts()[::-1].plot(kind=‘barh‘,color=‘royalblue‘,ax=ax[0])
# ax[0].set_xlabel(‘人数‘,fontsize=12)
# ax[0].set_ylabel(‘贷款状态‘,fontsize=12)
# ax[0].set_yticklabels(statu_labels[::-1
#                       ],fontsize=12)
#
# df["loan_condition"].value_counts().plot.pie(explode=[0,0.25], autopct=‘%1.2f%%‘, ax=ax[1], shadow=False, colors=colors,
#                                              labels=labels, fontsize=12, startangle=70)
# ax[1].set_ylabel(‘% 总体贷款状态‘, fontsize=12)
#
# sns.barplot(x="year", y="loan_amnt", hue="loan_condition", data=df, palette=colors,ax=ax[2], estimator=lambda x: len(x) / len(df[‘year‘]) * 100)
# ax[2].set(ylabel="(%)")
# plt.subplots_adjust(top=1,bottom=0,left=0,right=1,hspace=0.2,wspace=0.2)
# plt.savefig("2.6 2007-2015 Lending Club 贷款状态分布.png",dpi=1000,bbox_inches = ‘tight‘) #解决图片不清晰,不完整的问题
# # plt.show()

end_time = time.process_time()
print("程序运行了 %s 秒"%(end_time-start_time))

原文地址:https://www.cnblogs.com/Ray-0808/p/12618551.html

时间: 2024-10-11 09:12:48

Lending Club 公司2007-2018贷款业务初步分析的相关文章

Lending Club 数据做数据分析&amp;评分卡

一 :项目目的 研究Lending Club 贷款的风险特征,并提出建模方案. 二:数据获取 数据集来自Lending Club平台发生借贷的业务数据,2017年第一季度,具体数据集可以从Lending Club官网下载,需要先用邮箱注册一个账号. 三:数据探索  1.导入需要用到的工具 import pandas as pd import numpy as np import matplotlib.pyplot as plt plt.style.use('ggplot') #风格设置 impo

Lending Club贷款数据分析

python信用评分卡(附代码,博主录制) https://study.163.com/course/introduction.htm?courseId=1005214003&utm_campaign=commission&utm_source=cp-400000000398149&utm_medium=share https://www.jianshu.com/p/a8037a38e219(原文链接) https://www.jianshu.com/p/4b4e0c343d3e(

【粤易金融】Lending Club的IPO能媲美阿里巴巴的高度吗?

淘宝安全交易平台 www.xunjie36.com 淘宝店铺出售www.360feiyue.com 淘宝店铺交易www.360feiyue.com[关键词]淘宝安全交易平台 www.xunjie36.com 淘宝店铺出售www.360feiyue.com 淘宝店铺交易www.360feiyue.com什么是淘宝白号 sterne agee公司的分析报告称,"我们预计截至2017年,lending club 的收入额将达10亿美元,息税前利润率达409.2015年.2016年.2017年的现金每股

Atitit.研发管理如何避免公司破产倒闭的业务魔咒

Atitit.如何避免公司破产倒闭的业务魔咒 1. 大型公司的衰落或者倒闭破产案例1 1.1. 摩托罗拉1 1.2. 诺基亚2 1.3. sun2 2. 为什么他们会倒闭?? 常见的一些倒闭元素2 2.1. 管理问题(行政问题)2 2.2. 管理问题的解决------分权制衡-最高七大组织机构2 2.2.1. 宗教事务部(公司集团文化部,很重要)2 2.2.2. 1.1. 制度与重大会议委员会(公司的制度立法部门)2 2.2.3. 1.2. 纠纷处理部:(公司制度的解释与冲突裁决)3 2.2.4

现身说法:实际业务出发分析百亿数据量下的多表查询优化

今天给大家带来的讨论主题是通过实战经验来对百亿数据量下的多表数据查询进行优化,俗话说的好,一切脱离业务的架构都是耍流氓,接下来我就整理一下今天早上微信群里石头哥给大家分享的百亿数据量多表查询架构以及优化思路.由于本文内容整理自微信群,爬楼不易,整理更不易,如果有遗漏,欢迎大家在评论区留言. 作者:依乐祝 原文地址:https://www.cnblogs.com/yilezhu/p/10530223.html 简单的例子 这里我们先举个简单的例子,来个开胃菜,然后再引出今天的访谈主题. 举例:比如

DirectUI的初步分析-转

DirectUI的初步分析(一) 最近由于项目的需要学习了一下DirectUI方面的东西,主要借鉴的是一个国外程序员写的代码(见引用一),看了后发现它更多的是探讨一种实现的可能性和思路,和实际应用还是有距离的,不过其实现还是很有意思的.在写此小结的时候又发现国内一个程序员将这个代码部分移植到WINCE下的代码(见引用二),因为平台的差异性要完全开发一个WINCE下的实际代码还是需要时间的. 由于本人GUI开发做得少,工作中有关这方面的东西主要是提供思路和方法,学习DirectUI的主要目的是为了

U-BOOT-2016.07移植 (第一篇) 初步分析

U-BOOT-2016.07移植 (第一篇) 初步分析 目录 U-BOOT-201607移植 第一篇 初步分析 目录 编译和移植环境 更新交叉编译工具 1 下载arm-linux-gcc 443 2 安装arm-linux-gcc 443 安装环境Ubuntu 910 下载u-boot-201607并解压 分析顶层Makefile 1 找出目标依赖关系 2 总结 初次编译u-boot 1 配置 2 编译 分析u-boot启动流程 1 分析startS 2 分析crt0S 3 总结 1. 编译和移

Cocos2d-x 3.1 Director ActionManger Scheduler初步分析

Director游戏主循环显示Node DisplayLinkDirector继承Director override了以下方法 virtual void mainLoop() override; virtual void setAnimationInterval(double value) override; virtual void startAnimation() override; virtual void stopAnimation() override; mainLoop()是游戏主循

mysql--error150错误原因初步分析

1, 两个字段的类型或者大小不严格匹配,例如,如果一个是INT(10), 那么外键也必须设置成INT(10), 而不是 INT(11) 也不能是 TINYINT. 你得使用 SHOW 命令来查看字段的大小,因为一些查询浏览器有时候把 int(10) 和int(11) 都显示为integer.另外,你还必须确定两个字段是否一个为 SIGNED,而另一个又是UNSIGNED, 这两字段必须严格地一致匹配. 2, 你试图引用的其中一个外键没有建立起索引,或者不是一个primary key , 如果其中