![]() |
1
1
php通过自己的协议连接到mysql。所允许的sql的大小增加了mbs,而且由于php/mysql通信是在本地主机(或局域网)上进行的,因此它不会成为瓶颈。因此,就php和mysql之间的通信而言,sql的大小并不重要。 在准备sql(解析和规划)时,可能需要额外的时间,您可以考虑创建一个执行上述操作的视图。 另外,重要的是索引,但是计划看起来没问题(除了文件排序-您可能希望有一个索引,可用于wp_post上的排序和选择)。 此外,您只从wp_post表中选择列,但要加入更多的表-请考虑使用where exists条件重写它。 至于优化-一定要在你的数据库中以数量级获得一些样本数据,以模拟你最终想要拥有的数据库的硬件和大小。优化查询是开发过程中不应该忘记的事情,但是过早地花费太多时间可能是不合理的。 |
![]() |
2
2
你不能乐观。你需要所有的连接,因为它们是独立的过滤器,可能是因为和逻辑,也就是说,你想要海滩前面和街道外的停车场。 你最好的办法是确保你的桌子没有碎片。在元值、元键和post-id上有一个索引。 |
![]() |
3
1
这是实现基于属性的搜索的一种特别低效的方法。不幸的是,我不知道wordpress是否可以用其他方法来实现,即:每个属性都应该有自己的列和索引。这是不太灵活,但要快得多。 |
![]() |
4
1
正如simon sabin已经说过的那样,不能去掉连接,因为它们充当过滤器。 为了便于阅读,最好在wp_postreta as上有一个索引(post_id,meta_key,metavalue(255))。这个顺序很重要,因为按照这个顺序计算联接中的条件,但是索引将使数据库的大小增加一倍,并减慢插入和更新的速度。 应用乘积集的条件的顺序也不是最优的:方程应该先满足like和range条件,否则不使用索引进行过滤。 最后但并非最不重要的杀手是按post_date排序:由于每行结果中都包含文本字段,mysql将使用文件系统临时表进行排序。如果id和日期一起增加,那么按wp_posts.id排序可能是一个更好的主意。 |
|
Johnny T · 基于当前值的SQL合并表[重复] 4 月前 |
![]() |
John D · 需要为NULL或NOT NULL的WHERE子句 4 月前 |
![]() |
ojek · 如何对SQL结果进行分组和编号? 4 月前 |
![]() |
senek · 如何在PL/SQL中将选择结果(列)放入数组中 4 月前 |
![]() |
Sax · 规范化Google表格(第一步) 4 月前 |
![]() |
Jatin · 检索卷计数的动态sql抛出错误语法错误[关闭] 4 月前 |
![]() |
Andrus · 如何在sql中查找第二个匹配项 4 月前 |