首先10W 的数据量根本不算多,EF 应该是可以轻松应对。但主要还是要看你的数据库的表是如何设计的,以下仅为几点建议,希望能对你有用:
- 数据最较大(千万+)分表/组建动态表,然后使用拼接 SQL 的方式查询。
- 使用 EF 与基数表映射,即用户基本信息,业务逻辑相关的基本信息表;DAL 中建立一个使用 Ado.net 的 Repository 类,用来与详细数据表 CRUD。
- 若详细数据表数据量较大且根据实际业务情况将会有更大、更快增长则应该考虑对详细数据表进行拆分,横向或是纵向,因为表中数据最很大时插入一条数据都很慢。
- 若有非常复杂的查询需求时(无论是使用 EF 还是 ADO.Net),则应该考虑创建存储过程,让数据库做它本该做的工作。
- 优化 SQL 查询(无论是使用 EF 的 Linq To Entity 还是 ADO.NET 拼接 SQL),分页、索引\组合索引、Where中应该使用索引列做为条件 ....
- 若条件允许则应该平衡数据库服务器压力,比如增加新的数据库服务器以达到负载转移。
- 让 DBA 参与数据库设计及优化,毕竟码农不可能是全才。
EF 只是一个 ORM 框架,至于性能好坏是和代码与设计有很大关系的。
Please mark this as answer if it helps with this issue!