SQL
文章平均质量分 90
热爱编程的码人
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
SQL调优手册(2)
因为ids太多,即使能快速查出数据,但如果返回的数据量太大了,网络传输也是非常消耗性能的,接口性能始终好不到哪里去。如果实现业务场景中需要查询出另外几张表中的数据,可以在a、b、c表中冗余专门的字段,比如:在表a中冗余d_name字段,保存需要查询出的数据。MySQL会查到1000020条数据,然后丢弃前面的1000000条,只查后面的20条数据,这个是非常浪费资源的。但缺点是MySQL执行子查询时,需要创建临时表,查询完毕后,需要再删除这些临时表,有一些额外的性能消耗。原创 2025-01-21 14:30:43 · 729 阅读 · 0 评论 -
SQL调优手册(3)
因为表中新增数据时,需要同时为它创建索引,而索引是需要额外的存储空间的,而且还会有一定的性能消耗。我们的SQL语句在做一些耗时的操作之前,应尽可能缩小数据范围,这样能提升SQL整体的性能。如果两张表使用inner join关联,MySQL会自动选择两张表中的小表,去驱动大表,所以性能上不会有太大的问题。这个问题要辩证的看,如果你的系统并发量不高,表中的数据量也不多,其实超过5个也可以,只要不要超过太多就行。如果是长度固定的字段,比如用户手机号,一般都是11位的,可以定义成char类型,长度是11字节。原创 2025-02-08 17:07:44 · 853 阅读 · 0 评论 -
SQL调优手册(1)
此外,多查出来的数据,通过网络IO传输的过程中,也会增加数据传输的时间。然后在代码中,获取第一个元素的数据,即首单的数据,就能获取首单时间。除非是有些特殊的场景,比如union all之后,结果集中出现了重复数据,而业务场景中是不允许产生重复数据的,这时可以使用union。此外,在删除或者修改数据时,为了防止误操作,导致删除或修改了不相干的数据,也可以在SQL语句最后加上limit。有时候,我们需要查询某些数据中的第一条,比如:查询某个用户下的第一个订单,想看看他第一次的首单时间。原创 2025-01-17 16:30:27 · 567 阅读 · 0 评论
分享