数据库中的id很少用自增的, 会被别人用循环遍历爬取结果。 互联网公司也不采取UUID(WHY?),使用snowflake算法。(不准确, id可以另外处理一下防爬取)
分库分表: 垂直切分(按模块将同一类型的表分到一个库)、水平切分(将一个库切割成若干个库,一个表切分成若干个表)
日期增减请用DATE类函数, 日期比较请转时间戳~
- 数据库的key和index是两个层面的含义:
- key对应的是约束(表的完整性)
- index对应的是辅助查询
- 两者在mysql中相辅相成, 比如你建一个unique key,会自动建一个unique index
- 基于mysql的特性, 直接建立index来约束key就好。
- select少用*,只使用需要使用的字段
- 尽量少使用关联查询,适当的对一些字段进行数据冗余
- 对一些最常用查询字段,可以考虑使用索引(面试官一般也会问下有哪些索引类型,索引的数据结构B树,索引失效等问题)
- mysql可以使用explain,检查sql的查询性能,通过key可以看到查询使用到的索引,type看到是全表扫描还是索引扫描等,尽量使sql通过索引查询
- https://www.cnblogs.com/jianmingyuan/p/6740090.html