随笔分类 -  XCode

数据中间件
摘要:NewLife.XCode是一个有20年历史的开源数据中间件,支持net6/net5/net45/net40,由新生命团队(2002~2020)开发完成并维护至今,以下简称XCode。 整个系列教程会大量结合示例代码和运行日志来进行深入分析,蕴含多年开发经验于其中,代表作有百亿级大数据实时计算项目。 阅读全文
posted @ 2022-01-20 15:53 大石头 阅读(591) 评论(0) 推荐(0) 编辑
摘要:NewLife.XCode是一个有15年历史的开源数据中间件,支持netcore/net45/net40,由新生命团队(2002~2020)开发完成并维护至今,以下简称XCode。 整个系列教程会大量结合示例代码和运行日志来进行深入分析,蕴含多年开发经验于其中,代表作有百亿级大数据实时计算项目。 开 阅读全文
posted @ 2022-01-14 21:07 大石头 阅读(674) 评论(0) 推荐(8) 编辑
摘要:NewLife.XCode是一个有15年历史的开源数据中间件,支持netcore/net45/net40,由新生命团队(2002~2020)开发完成并维护至今,以下简称XCode。整个系列教程会大量结合示例代码和运行日志来进行深入分析,蕴含多年开发经验于其中,代表作有百亿级大数据实时计算项目。 阅读全文
posted @ 2022-01-11 13:44 大石头 阅读(827) 评论(1) 推荐(9) 编辑
摘要:所有查询的标准结构都是 Select xxx From table Where yyy Order By zzz Limit 0, 20 分组查询也不例外,仅仅是在where子句处做文章。 阅读全文
posted @ 2020-03-10 22:54 大石头 阅读(1735) 评论(0) 推荐(5) 编辑
摘要:100亿数据其实并不多,一个比较常见的数据分表分库模型: MySql数据库8主8从,每服务器8个库,每个库16张表,共1024张表(从库也有1024张表) ,每张表1000万到5000万数据,整好100亿到500亿数据! 阅读全文
posted @ 2019-09-09 09:07 大石头 阅读(6974) 评论(28) 推荐(61) 编辑
摘要:XCode是充血模型,在实体类上附带有大量便捷操作,其中就包括各种目标数据类型的导入导出! 阅读全文
posted @ 2019-06-27 23:29 大石头 阅读(2971) 评论(13) 推荐(35) 编辑
摘要:现代管理信息系统绝大部分采用BS架构,无一例外需要用户角色权限的支持! 结合团队诸多兄弟姐妹的经验,设计了一个大小适中的用户权限系统Membership,目标是满足80%的使用场景,并具备一定的扩展性。 阅读全文
posted @ 2019-06-24 21:26 大石头 阅读(2811) 评论(5) 推荐(13) 编辑
摘要:如果说前面16篇讲的都是XCode的ORM功能,从这一篇开始,将超越ORM之外,从另一个角度讲解一个数据中间件! 实体接口IEntity,抽象实体对象的添删改存操作,支持访问脏数据和扩展属性! 实体工厂接口IEntityOperate,抽象提供实体类的元数据、查询、事务、设置! 阅读全文
posted @ 2019-05-30 13:27 大石头 阅读(1591) 评论(10) 推荐(14) 编辑
摘要:使用关系型数据库来做大数据,第一步必然是索引! 单表超过1000万数据,任何查询都必须走索引!否则数据库一定跟你说ByeBye! 阅读全文
posted @ 2019-05-23 19:37 大石头 阅读(7056) 评论(22) 推荐(58) 编辑
摘要:前文提到了以sql为key的数据层缓存,以及整表缓存的实体列表缓存,各自有其优缺点,适用于不同场合。 当单表数据较大(10万+)时,两者就无能为力了。天空一道巨响,对象字典缓存隆重登场! 对象字典缓存:以主键为key,缓存实体对象,以满足应用层的高频单点查询需求! 阅读全文
posted @ 2019-04-21 00:58 大石头 阅读(2213) 评论(10) 推荐(21) 编辑
摘要:在实际项目开发中,经常遇到有一些表数据很少(1000行以内),不会频繁修改(平均每行几个小时才会修改一次),例如配置表、分类表等。 这样的表,往往可以接受三五秒甚至更长的延迟,正是最适合使用缓存的地方。 实体缓存:一次性加载全表数据进入内存,供上层多维度查询! 阅读全文
posted @ 2019-04-20 08:27 大石头 阅读(2250) 评论(2) 推荐(13) 编辑
摘要:缓存是一把尖刀,合理使用可大大提升吞吐率! 阅读全文
posted @ 2019-04-18 22:57 大石头 阅读(2202) 评论(5) 推荐(22) 编辑
摘要:码农法则:数据库压力小于100qps时不要考虑指明select列来优化,大多数系统活不到需要优化的明天! 阅读全文
posted @ 2019-04-17 22:36 大石头 阅读(3831) 评论(6) 推荐(30) 编辑
摘要:XCode不支持多表关联查询,单表查询利于优化以及分表分库,一切Join都可以借助扩展属性实现,配合缓存使用可以达到更好的效果! 阅读全文
posted @ 2019-04-01 22:47 大石头 阅读(2351) 评论(13) 推荐(24) 编辑
摘要:事务,通俗来讲,同时干几件事,要么一起成功,要么一起失败! 阅读全文
posted @ 2019-04-01 21:53 大石头 阅读(1471) 评论(0) 推荐(9) 编辑
摘要:向 Meta.Factory.AdditionalFields 添加需要采用增量累加的字段,执行update时才生成 x=x+123 样子的语句 阅读全文
posted @ 2019-03-26 22:51 大石头 阅读(1055) 评论(1) 推荐(8) 编辑
摘要:在XCode中,每次执行实体类更新entity.Update时,都希望只更新修改过的字段,而不是update所有字段。 一方面,减少数据库压力以及通信流量; 另一方面,多线程同时更新同一行数据的不同字段,在未加锁的情况下,避免脏写。 阅读全文
posted @ 2019-03-26 20:24 大石头 阅读(2003) 评论(2) 推荐(16) 编辑
摘要:前文《XCode添删改》给大家展示了添删改数据的基本概况,本文将详解添删改高级功能。 阅读全文
posted @ 2019-03-18 23:03 大石头 阅读(2566) 评论(5) 推荐(16) 编辑
摘要:所谓数据初始化,就是在所有数据库操作之前,执行一些用户自定义操作! 一般应用系统部署都需要安装脚本,建立数据表以及导入基础数据,才能跑起来。 在XCode中,“建立数据表”这一步由反向工程包揽,再辅以一个“导入基础数据”的功能即可。 此外,系统在初步配置的过程中,经常可能出现需要清空某些表,然后重置到“出厂数据”的状态,例如魔方的菜单初始化。 阅读全文
posted @ 2019-03-18 22:07 大石头 阅读(5978) 评论(1) 推荐(12) 编辑
摘要:反向工程是XCode的大杀器,区别于其它ORM的最强功能! 通俗理解:基于XCode开发的应用,无需数据库安装脚本,连接字符串指向哪一台哪一种数据库,系统就自动在上面建库建表! 正式定义:基于实体类的表结构信息,在连接字符串指定的目标数据库上自动执行建库建表、添删改字段、创建索引等操作,支持各种数据库! 应用系统首次启动完成的时候,也是自动建表建库并初始化完成的时候。 阅读全文
posted @ 2019-03-13 22:19 大石头 阅读(4306) 评论(13) 推荐(34) 编辑