A place to hold mainly reading notes, and some technical stuff occasionally. 这里主要是一些读书笔记、感悟;还有部分技术相关的内容。
目录[-]
在前端表格处需要显示一些附加信息。便要额外连接两张表。
阅读了SQL后,直接将已有的三张表与新的两张表LEFT JOIN起来。到前端一刷新,好慢(实际上,这中间隔了大概一周时间,又新增了几十万数据,普遍反应太慢!),大约需要20+s;
然后,从前端到后端,分析了整个流程后,确定问题应该出在后端查询;
可是再次看了遍SQL,并没有发现什么异常……
怀疑是新连接的两张表的问题,可是去掉添加的新连接后,依然很慢,所以,之前的SQL就是有问题的!!
code
的字段,经确认code
是一个普通字段,但是在表中应该是不存在重复值的。UNIQUE唯一索引
。前端再次刷新,秒级别,快得不像话,太感人~问题解决~
简直了,就这么一个简单的字段唯一索引
,添加之后,查询效率竟提升了20多倍,不可思议!
SQL优化,长路漫漫呀~
思考后发现,其实,UNIQUE索引
是为了限制数据表中该字段不重复的,为唯一性提供保证;其直接目的并不是为了提升查询效率;
所以这是开始在数据库表设计时埋的一颗雷……
如果可以确定某个数据列将只包含互不相同的值,在建表时就应该使用UNIQUE关键字,将其定义为唯一索引。
If you have any questions or any bugs are found, please feel free to contact me.
Your comments and suggestions are welcome!