JDBC :java数据库连接,是一种用于执行SQL语句的java API,可以为多种关系数据库提供统一访问,它由一组用java语言编写的类和接口组成。因为写的代码太多已经淘汰。
1.Mybatis :没有缓存处理,没有事物(结合Spring 的事物处理方式)
2.Hibrenate: 加入了缓存管理,每次数据库取用时会查看缓存中是否已经有了,有了将不再从数据库中获取
3.数据库设计,不使用外键,因为外键扩展性太小。(使用事物等的多表查询)
4.自增主键 数据库给你做好了索引,有些时候查询某些字段的时候,如果数据值变化大的时候手动建索引(B+树);索引是查询两次,先查询索引,再查询数据库;插入的时候也是两次,更新索引,插入数据库
5.一张MySQL 数据库的表行数1kw 以内是最好的 (经验值)
当涉及一张表放不开多表的时候,通过将id/* 取余之后的值分表
6.redis 远程数据缓存 ,缓存单独的一个服务 RPC 保持数据库跟缓存的一致性,所以每次的存储数据是缓存跟数据库的同时更新
- 数据的查询 redis的读取,要批量查询,减少数据库 redis的链接
9.一致性 高可用性 高扩展性
- 多线程时的数据问题 (尽量减少全局变量,或者static的变量) 加锁 synchronized redis Mysql 已经加锁了