【问题标题】:Getting results quickly from multiple MySQL tables从多个 MySQL 表中快速获取结果
【发布时间】:2012-10-11 17:43:58
【问题描述】:

我正在为使用 PHP、MySQL 的客户开发酒店预订网站,酒店将在该网站上登录并管理他们的房价、特价、最低住宿预订、最后一分钟优惠等... 我已经完成了,但面临从数据库快速获取费率的问题,因为我必须在表格和后续流程中获取费率。 当用户选择日期时,我在存储日期和编号的表 tbl_availability 中进行搜索。可用房间,然后在特价表中,我存储选定日期的可用报价以检查用户是否有资格获得任何特价,然后我检查最短停留时间表以检查酒店是否在用户选择的日期添加了任何最低停留时间限制,并且最后我检查日期是否有任何最后一分钟的交易可用。我需要搜索所有酒店,然后将结果显示给用户。这是有效的,但需要很长时间(几乎 60-90 秒才能返回结果),最重要的是,如果用户选择 2 个房间,那么我需要检查 2 个房间,因为优惠和最低停留时间是在房间级别管理的。

我认为会有所帮助的一件事是,我将运行 cron 并将所有内容存储在一个表中以供未来 1 年使用,并在每次预订或每次酒店发生任何变化时更新该表。

之前有没有人处理过类似的场景并找到了一种从数据库中快速获取结果的方法?

【问题讨论】:

  • 如果您的设计存在根本缺陷,那么获取速度有多快并不重要。

标签: php mysql optimization


【解决方案1】:

为了提高查询性能尝试使用http://memcached.org/在内存中存储缓存。

【讨论】:

  • 嗨 Mauricio,我尝试使用 memcached,但它可以是入住日期、退房日期、房间数量、成人和儿童的任意组合。 100 次搜索中只有 2 次是相同的,所以我大部分时间都需要运行新的查询。
猜你喜欢
  • 2019-08-26
  • 2017-11-20
  • 1970-01-01
  • 2013-12-26
  • 2013-06-26
  • 2012-04-27
  • 1970-01-01
  • 2021-11-30
  • 1970-01-01
相关资源
最近更新 更多