博客园 - 大石头
uuid:6cbd1ba2-f883-4c34-aed1-30dde64a3a3e;id=692748
2023-08-14T12:43:52Z
大石头
https://www.cnblogs.com/nnhy/
feed.cnblogs.com
https://www.cnblogs.com/nnhy/p/xcode_backup.html
[NewLife.XCode]备份恢复与同步(数据搬运专家) - 大石头
NewLife.XCode是一个有20年历史的开源数据中间件,支持net6/net5/net45/net40,由新生命团队(2002~2020)开发完成并维护至今,以下简称XCode。 整个系列教程会大量结合示例代码和运行日志来进行深入分析,蕴含多年开发经验于其中,代表作有百亿级大数据实时计算项目。
2022-01-20T07:53:00Z
2022-01-20T07:53:00Z
大石头
https://www.cnblogs.com/nnhy/
【摘要】NewLife.XCode是一个有20年历史的开源数据中间件,支持net6/net5/net45/net40,由新生命团队(2002~2020)开发完成并维护至今,以下简称XCode。 整个系列教程会大量结合示例代码和运行日志来进行深入分析,蕴含多年开发经验于其中,代表作有百亿级大数据实时计算项目。 <a href="https://www.cnblogs.com/nnhy/p/xcode_backup.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/nnhy/p/xcode_queue.html
[NewLife.XCode]实体队列(多线程生产的大数据集中保存) - 大石头
NewLife.XCode是一个有15年历史的开源数据中间件,支持netcore/net45/net40,由新生命团队(2002~2020)开发完成并维护至今,以下简称XCode。 整个系列教程会大量结合示例代码和运行日志来进行深入分析,蕴含多年开发经验于其中,代表作有百亿级大数据实时计算项目。 开
2022-01-14T13:07:00Z
2022-01-14T13:07:00Z
大石头
https://www.cnblogs.com/nnhy/
【摘要】NewLife.XCode是一个有15年历史的开源数据中间件,支持netcore/net45/net40,由新生命团队(2002~2020)开发完成并维护至今,以下简称XCode。 整个系列教程会大量结合示例代码和运行日志来进行深入分析,蕴含多年开发经验于其中,代表作有百亿级大数据实时计算项目。 开 <a href="https://www.cnblogs.com/nnhy/p/xcode_queue.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/nnhy/p/xcode_batch.html
[NewLife.XCode]批量添删改操作(提升吞吐率) - 大石头
NewLife.XCode是一个有15年历史的开源数据中间件,支持netcore/net45/net40,由新生命团队(2002~2020)开发完成并维护至今,以下简称XCode。整个系列教程会大量结合示例代码和运行日志来进行深入分析,蕴含多年开发经验于其中,代表作有百亿级大数据实时计算项目。
2022-01-11T05:44:00Z
2022-01-11T05:44:00Z
大石头
https://www.cnblogs.com/nnhy/
【摘要】NewLife.XCode是一个有15年历史的开源数据中间件,支持netcore/net45/net40,由新生命团队(2002~2020)开发完成并维护至今,以下简称XCode。整个系列教程会大量结合示例代码和运行日志来进行深入分析,蕴含多年开发经验于其中,代表作有百亿级大数据实时计算项目。 <a href="https://www.cnblogs.com/nnhy/p/xcode_batch.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/nnhy/p/net_100w.html
[NewLife.Net]单机400万长连接压力测试 - 大石头
对网络库NewLife.Net进行单机百万级长连接测试,并持续收发数据,检测网络库稳定性。
结论,8月1日晚达到200万,8月2日下午达到404万。
2020-08-03T00:22:00Z
2020-08-03T00:22:00Z
大石头
https://www.cnblogs.com/nnhy/
【摘要】对网络库NewLife.Net进行单机百万级长连接测试,并持续收发数据,检测网络库稳定性。
结论,8月1日晚达到200万,8月2日下午达到404万。 <a href="https://www.cnblogs.com/nnhy/p/net_100w.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/nnhy/p/xcode_stat.html
[NewLife.XCode]高级统计(数据报表利器) - 大石头
所有查询的标准结构都是 Select xxx From table Where yyy Order By zzz Limit 0, 20
分组查询也不例外,仅仅是在where子句处做文章。
2020-03-10T14:54:00Z
2020-03-10T14:54:00Z
大石头
https://www.cnblogs.com/nnhy/
【摘要】所有查询的标准结构都是 Select xxx From table Where yyy Order By zzz Limit 0, 20
分组查询也不例外,仅仅是在where子句处做文章。 <a href="https://www.cnblogs.com/nnhy/p/xcode_stat.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/nnhy/p/xcode_division.html
[NewLife.XCode]分表分库(百亿级大数据存储) - 大石头
100亿数据其实并不多,一个比较常见的数据分表分库模型:
MySql数据库8主8从,每服务器8个库,每个库16张表,共1024张表(从库也有1024张表) ,每张表1000万到5000万数据,整好100亿到500亿数据!
2019-09-09T01:07:00Z
2019-09-09T01:07:00Z
大石头
https://www.cnblogs.com/nnhy/
【摘要】100亿数据其实并不多,一个比较常见的数据分表分库模型:
MySql数据库8主8从,每服务器8个库,每个库16张表,共1024张表(从库也有1024张表) ,每张表1000万到5000万数据,整好100亿到500亿数据! <a href="https://www.cnblogs.com/nnhy/p/xcode_division.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/nnhy/p/xcode_import_export.html
[NewLife.XCode]导入导出(实体对象百变魔君) - 大石头
XCode是充血模型,在实体类上附带有大量便捷操作,其中就包括各种目标数据类型的导入导出!
2019-06-27T15:29:00Z
2019-06-27T15:29:00Z
大石头
https://www.cnblogs.com/nnhy/
【摘要】XCode是充血模型,在实体类上附带有大量便捷操作,其中就包括各种目标数据类型的导入导出! <a href="https://www.cnblogs.com/nnhy/p/xcode_import_export.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/nnhy/p/xcode_membership.html
[NewLife.XCode]角色权限 - 大石头
现代管理信息系统绝大部分采用BS架构,无一例外需要用户角色权限的支持!
结合团队诸多兄弟姐妹的经验,设计了一个大小适中的用户权限系统Membership,目标是满足80%的使用场景,并具备一定的扩展性。
2019-06-24T13:26:00Z
2019-06-24T13:26:00Z
大石头
https://www.cnblogs.com/nnhy/
【摘要】现代管理信息系统绝大部分采用BS架构,无一例外需要用户角色权限的支持!
结合团队诸多兄弟姐妹的经验,设计了一个大小适中的用户权限系统Membership,目标是满足80%的使用场景,并具备一定的扩展性。 <a href="https://www.cnblogs.com/nnhy/p/xcode_membership.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/nnhy/p/xcode_factory.html
[NewLife.XCode]实体工厂(拦截处理实体操作) - 大石头
如果说前面16篇讲的都是XCode的ORM功能,从这一篇开始,将超越ORM之外,从另一个角度讲解一个数据中间件!
实体接口IEntity,抽象实体对象的添删改存操作,支持访问脏数据和扩展属性!
实体工厂接口IEntityOperate,抽象提供实体类的元数据、查询、事务、设置!
2019-05-30T05:27:00Z
2019-05-30T05:27:00Z
大石头
https://www.cnblogs.com/nnhy/
【摘要】如果说前面16篇讲的都是XCode的ORM功能,从这一篇开始,将超越ORM之外,从另一个角度讲解一个数据中间件!
实体接口IEntity,抽象实体对象的添删改存操作,支持访问脏数据和扩展属性!
实体工厂接口IEntityOperate,抽象提供实体类的元数据、查询、事务、设置! <a href="https://www.cnblogs.com/nnhy/p/xcode_factory.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/nnhy/p/xcode_100billion.html
[NewLife.XCode]百亿级性能 - 大石头
使用关系型数据库来做大数据,第一步必然是索引!
单表超过1000万数据,任何查询都必须走索引!否则数据库一定跟你说ByeBye!
2019-05-23T11:37:00Z
2019-05-23T11:37:00Z
大石头
https://www.cnblogs.com/nnhy/
【摘要】使用关系型数据库来做大数据,第一步必然是索引!
单表超过1000万数据,任何查询都必须走索引!否则数据库一定跟你说ByeBye! <a href="https://www.cnblogs.com/nnhy/p/xcode_100billion.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/nnhy/p/xcode_singlecache.html
[NewLife.XCode]对象字典缓存(百万军中取敌首级) - 大石头
前文提到了以sql为key的数据层缓存,以及整表缓存的实体列表缓存,各自有其优缺点,适用于不同场合。
当单表数据较大(10万+)时,两者就无能为力了。天空一道巨响,对象字典缓存隆重登场!
对象字典缓存:以主键为key,缓存实体对象,以满足应用层的高频单点查询需求!
2019-04-20T16:58:00Z
2019-04-20T16:58:00Z
大石头
https://www.cnblogs.com/nnhy/
【摘要】前文提到了以sql为key的数据层缓存,以及整表缓存的实体列表缓存,各自有其优缺点,适用于不同场合。
当单表数据较大(10万+)时,两者就无能为力了。天空一道巨响,对象字典缓存隆重登场!
对象字典缓存:以主键为key,缓存实体对象,以满足应用层的高频单点查询需求! <a href="https://www.cnblogs.com/nnhy/p/xcode_singlecache.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/nnhy/p/xcode_entitycache.html
[NewLife.XCode]实体列表缓存(最土的方法实现百万级性能) - 大石头
在实际项目开发中,经常遇到有一些表数据很少(1000行以内),不会频繁修改(平均每行几个小时才会修改一次),例如配置表、分类表等。
这样的表,往往可以接受三五秒甚至更长的延迟,正是最适合使用缓存的地方。
实体缓存:一次性加载全表数据进入内存,供上层多维度查询!
2019-04-20T00:27:00Z
2019-04-20T00:27:00Z
大石头
https://www.cnblogs.com/nnhy/
【摘要】在实际项目开发中,经常遇到有一些表数据很少(1000行以内),不会频繁修改(平均每行几个小时才会修改一次),例如配置表、分类表等。
这样的表,往往可以接受三五秒甚至更长的延迟,正是最适合使用缓存的地方。
实体缓存:一次性加载全表数据进入内存,供上层多维度查询! <a href="https://www.cnblogs.com/nnhy/p/xcode_entitycache.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/nnhy/p/xcode_dbcache.html
[NewLife.XCode]数据层缓存(网站性能翻10倍) - 大石头
缓存是一把尖刀,合理使用可大大提升吞吐率!
2019-04-18T14:57:00Z
2019-04-18T14:57:00Z
大石头
https://www.cnblogs.com/nnhy/
【摘要】缓存是一把尖刀,合理使用可大大提升吞吐率! <a href="https://www.cnblogs.com/nnhy/p/xcode_dbcache.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/nnhy/p/xcode_search.html
[NewLife.XCode]高级查询(化繁为简、分页提升性能) - 大石头
码农法则:数据库压力小于100qps时不要考虑指明select列来优化,大多数系统活不到需要优化的明天!
2019-04-17T14:36:00Z
2019-04-17T14:36:00Z
大石头
https://www.cnblogs.com/nnhy/
【摘要】码农法则:数据库压力小于100qps时不要考虑指明select列来优化,大多数系统活不到需要优化的明天! <a href="https://www.cnblogs.com/nnhy/p/xcode_search.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/nnhy/p/xcode_extend.html
[NewLife.XCode]扩展属性(替代多表关联Join提升性能) - 大石头
XCode不支持多表关联查询,单表查询利于优化以及分表分库,一切Join都可以借助扩展属性实现,配合缓存使用可以达到更好的效果!
2019-04-01T14:47:00Z
2019-04-01T14:47:00Z
大石头
https://www.cnblogs.com/nnhy/
【摘要】XCode不支持多表关联查询,单表查询利于优化以及分表分库,一切Join都可以借助扩展属性实现,配合缓存使用可以达到更好的效果! <a href="https://www.cnblogs.com/nnhy/p/xcode_extend.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/nnhy/p/xcode_transaction.html
[NewLife.XCode]事务处理(算准你的每一分钱) - 大石头
事务,通俗来讲,同时干几件事,要么一起成功,要么一起失败!
2019-04-01T13:53:00Z
2019-04-01T13:53:00Z
大石头
https://www.cnblogs.com/nnhy/
【摘要】事务,通俗来讲,同时干几件事,要么一起成功,要么一起失败! <a href="https://www.cnblogs.com/nnhy/p/xcode_transaction.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/nnhy/p/xcode_additional.html
[NewLife.XCode]增量累加 - 大石头
向 Meta.Factory.AdditionalFields 添加需要采用增量累加的字段,执行update时才生成 x=x+123 样子的语句
2019-03-26T14:51:00Z
2019-03-26T14:51:00Z
大石头
https://www.cnblogs.com/nnhy/
【摘要】向 Meta.Factory.AdditionalFields 添加需要采用增量累加的字段,执行update时才生成 x=x+123 样子的语句 <a href="https://www.cnblogs.com/nnhy/p/xcode_additional.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/nnhy/p/xcode_dirty.html
[NewLife.XCode]脏数据 - 大石头
在XCode中,每次执行实体类更新entity.Update时,都希望只更新修改过的字段,而不是update所有字段。
一方面,减少数据库压力以及通信流量;
另一方面,多线程同时更新同一行数据的不同字段,在未加锁的情况下,避免脏写。
2019-03-26T12:24:00Z
2019-03-26T12:24:00Z
大石头
https://www.cnblogs.com/nnhy/
【摘要】在XCode中,每次执行实体类更新entity.Update时,都希望只更新修改过的字段,而不是update所有字段。
一方面,减少数据库压力以及通信流量;
另一方面,多线程同时更新同一行数据的不同字段,在未加锁的情况下,避免脏写。 <a href="https://www.cnblogs.com/nnhy/p/xcode_dirty.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/nnhy/p/xcode_curd_adv.html
[NewLife.XCode]高级增删改 - 大石头
前文《XCode添删改》给大家展示了添删改数据的基本概况,本文将详解添删改高级功能。
2019-03-18T15:03:00Z
2019-03-18T15:03:00Z
大石头
https://www.cnblogs.com/nnhy/
【摘要】前文《XCode添删改》给大家展示了添删改数据的基本概况,本文将详解添删改高级功能。 <a href="https://www.cnblogs.com/nnhy/p/xcode_curd_adv.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/nnhy/p/xcode_initdata.html
[NewLife.XCode]数据初始化 - 大石头
所谓数据初始化,就是在所有数据库操作之前,执行一些用户自定义操作!
一般应用系统部署都需要安装脚本,建立数据表以及导入基础数据,才能跑起来。
在XCode中,“建立数据表”这一步由反向工程包揽,再辅以一个“导入基础数据”的功能即可。
此外,系统在初步配置的过程中,经常可能出现需要清空某些表,然后重置到“出厂数据”的状态,例如魔方的菜单初始化。
2019-03-18T14:07:00Z
2019-03-18T14:07:00Z
大石头
https://www.cnblogs.com/nnhy/
【摘要】所谓数据初始化,就是在所有数据库操作之前,执行一些用户自定义操作!
一般应用系统部署都需要安装脚本,建立数据表以及导入基础数据,才能跑起来。
在XCode中,“建立数据表”这一步由反向工程包揽,再辅以一个“导入基础数据”的功能即可。
此外,系统在初步配置的过程中,经常可能出现需要清空某些表,然后重置到“出厂数据”的状态,例如魔方的菜单初始化。 <a href="https://www.cnblogs.com/nnhy/p/xcode_initdata.html" target="_blank">阅读全文</a>