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