毕业5年,在学校时,关于数据库只学了一本《数据库简明教程》。(工作后有陆续看过些,都忘了)
现在的公司,机缘下,需要做查询优化。
1,上级的思路是,让程序员(我),优化SQL。
然后就开始了sql写到吐的日子。
个人总结:A,少用函数;B,少用Group by,聚合字段越多,速度更慢;C,如果老板过于追求速度,那就加索引(大量需要where和Group by的字段,加索引速度会变快);D,查询的中间过程用临时表,速度会变快(可能临时表它自己有优化)
这期间, 看了MSSQL的存储过程——
https://docs.microsoft.com/zh-cn/previous-versions/sql/sql-server-2005/ms174403(v%3dsql.90)
还有一下优化思路——
https://www.cnblogs.com/valarchie/p/5691778.html
2,其实在优化SQL前就觉得,这些慢的原因,应该是服务器和数据库造成的
表字段过多(随便就是10+起步,其实应该尽量别超过25个),千万级别的表有几个 ,都是经常要联合查询的。
还有同一个SQL语句,执行速度会相差10多s(这个我一直理解不了)
千万级别的数据,加索引是能变快的,但是代价也很客观
之前我一直不知道千万级别的数据,慢到什么程度算正常。就是已经没法改了,上级还让我改来改去的
3,
今天早上看了个优化的思路,比较认同——
https://www.zhihu.com/question/19719997/answer/549041957
我们上学时候,旁边大学好像有个特别牛的学数学的~把自己解决了~
当时是人人上看到的,也不知道原因。但就是觉得真的很没意思