- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我不确定如何提高此查询的性能。这需要超过 100 秒。我添加了索引并尝试了子查询,但似乎没有任何提高性能的方法。
查询
SELECT
GiftVoucher.VoucherNumber,
GiftVoucher.DateIssued,
GiftVoucher.DateRedeemed,
R.old_name as RedeemedBy,
I.old_name as IssuedBy,
RH.Name as RedeemedForHotel,
V.old_name as VoidedBy,
GiftVoucher.VoidedReplacment,
GiftVoucher.VoidedDescription
FROM GiftVoucher
LEFT JOIN StaffToWp R ON GiftVoucher.RedeemedBy=R.old_id
LEFT JOIN StaffToWp I ON GiftVoucher.IssuedBy=I.old_id
LEFT JOIN StaffToWp V ON GiftVoucher.VoidedBy=V.old_id
LEFT JOIN Hotel RH ON GiftVoucher.RedeemedForHotelID=RH.HotelID
WHERE DateIssued > "2011-12-31 23:59:59"
LIMIT 0, 20000
GiftVoucher结构
GiftVoucher
Column Type Null Default Comments
GiftVoucherID int(11) No
ParentGiftVoucherID int(11) Yes NULL
Value decimal(19,4) No
VoucherNumber varchar(150) Yes NULL
SendToRecipientAddress int(11) No
DateIssued datetime No
DateRedeemed datetime Yes NULL
GiftVoucherPurchaseID int(11) No
RedeemedBy int(11) Yes NULL
IssuedBy int(11) Yes NULL
Active int(11) No
RedeemedForHotelID int(11) Yes NULL
RedeemedTo int(11) Yes NULL
Redeemed int(1) No 0
RedeemedAmount decimal(19,4) Yes NULL
Voided int(1) No 0
VoidedDate datetime Yes NULL
VoidedBy int(11) Yes NULL
VoidedReplacment int(11) Yes NULL
VoidedDescription mediumtext Yes NULL
SystemVersion int(11) No
Indexes
Keyname Type Unique Packed Column Cardinality Collation Null Comment
PRIMARY BTREE Yes No GiftVoucherID 23191 A No
VoidedBy BTREE No No VoidedBy 2 A Yes
RedeemedBy BTREE No No RedeemedBy 244 A Yes
IssuedBy BTREE No No IssuedBy 212 A Yes
DateIssued BTREE No No DateIssued 23191 A No
RedeemedForHotelID BTREE No No RedeemedForHotelID 10 A Yes
StaffToWP 结构
StaffToWp
Column Type Null Default Comments
id int(11) No
old_id int(11) No
old_name varchar(255) No
new_id int(11) No
new_name varchar(255) No
Indexes
Keyname Type Unique Packed Column Cardinality Collation Null Comment
PRIMARY BTREE Yes No id 121 A No
old_id BTREE No No old_id 121 A No
Space usage:
Data 4,524 B
Index 7,168 B
Total 11,692 B
Row Statistics:
Format dynamic
Rows 121
Row length ø 37
Row size ø 97 B
Next autoindex 122
Creation Sep 16, 2015 at 12:01 PM
Last update Sep 16, 2015 at 12:01 PM
Last check Sep 16, 2015 at 12:01 PM
酒店结构
Hotel
Column Type Null Default Comments
HotelID int(11) No
Name varchar(250) No
Telephone varchar(50) No
AccommodationUrl varchar(250) No ''
ColourClass varchar(50) Yes NULL
Indexes
Keyname Type Unique Packed Column Cardinality Collation Null Comment
PRIMARY BTREE Yes No HotelID 7 A No
HotelID BTREE No No HotelID 7 A No
解释结果
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE GiftVoucher ALL DateIssued NULL NULL NULL 22180 Using where
1 SIMPLE R ref old_id old_id 4 milsomho_voucher.GiftVoucher.RedeemedBy 1
1 SIMPLE I ref old_id old_id 4 milsomho_voucher.GiftVoucher.IssuedBy 1
1 SIMPLE V ref old_id old_id 4 milsomho_voucher.GiftVoucher.VoidedBy 1
1 SIMPLE RH eq_ref PRIMARY,HotelID PRIMARY 4 milsomho_voucher.GiftVoucher.RedeemedForHotelID 1
最佳答案
感谢您实际包括表结构和解释计划!
DateIssued > "2011-12-31 23:59:59"
大概这个过滤器会显着减少查询返回的行数。但是您会看到 DBMS 没有使用 DateIssued 上的索引:
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE GiftVoucher ALL DateIssued NULL NULL NULL 22180 Using where
可能的原因是类型不匹配,迫使 MySQL 对源表中的每一行进行类型转换。
尝试:
DateIssued > 20111231235959
您还可以考虑其他方法来更具体地了解您正在提取的数据(更多过滤)并对数据进行非规范化以减少 LEFT 连接表的数量。
基数数字看起来很低 - 这是测试数据集吗?它们过时了吗?
关于mysql - 使用大量连接优化慢速 MySQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32609036/
这是关于 Espresso 的。我在模拟器上成功运行了集成测试。我认为有些测试失败是因为它运行得太快了。有没有办法降低执行/播放速度? 最佳答案 测试失败不可能导致速度加快。 Espresso 可以将
我在 JQuery 和 JS 中有这样的函数。我有一个带有复选框的 div 列表,并将它们添加到我的列表中。这对于 40 个 div 来说效果很好,但有时我有 2,000 个 div,它会导致 Chr
我们在 Linux 环境上部署了 Websphere 版本 6.1。要打开 https 连接,我们对 java.net.URL 对象调用 openConnection() 和 connect()。 打
我有一个度量的累积总和,结构如下: Aggregate ( { NULL : [Date].[Year - Month - Date].CurrentMember } ,[Measur
我有两个基本表: CREATE TABLE IF NOT EXISTS `users` ( `id` INT(32) NOT NULL auto_increment UNIQUE, `
使用 Canvas 元素,我从一个元素到另一个元素绘制一条线另一个元素是可拖动的,当拖动该元素时,该线会跟随可拖动的元素。 我的问题是渲染速度很慢(Mac PowerBook 上的 Fx 3.5)我想
我有这个网页:http://miloarc.pyrogenicmedia.com/ 哪个atm没什么特别的。它有一些影响,但没有一个让你倾家荡产。 如果您将鼠标悬停在图 block 上,它应该会更改其
我有一个 Collection View ,可以获取我存储的图像并显示它们。但是,当我运行它时,出现内存错误和非常慢/滞后的显示。这是我的代码: var players = ["1", "2", "3
谁能给我一些关于如何让这个运行速度更快的建议? return mb_entities.prospects. FirstOrDefault(x => x.address == pers
我需要读取和处理超过1亿个文件,但我只需要读取每个文件的前4个字节,因为我只需要读取文件头。 我已经创建了一个 .net core 2.2 批处理来处理它们,并且我已经使用多线程来最大化并发处理,但是
我有一张包含用户投票的大表。我尝试了几乎所有关于 INDEX 用法的教程和文章,但在失败之后……将字段作为键的所有可能组合,但查询仍然很慢。 我可以使用任何索引来加快速度吗? (到目前为止,我不会向你
我有一个大型文档,我想为它建立索引以进行单词搜索。 (我听说这种类型的数组真的叫做索引)。目前大约需要 10 分钟。有快速的方法吗?目前我遍历每个段落,如果我找到一个我以前没有遇到过的词,我也会将它添
我尝试将我的数据保存到 MySql(本地数据库)抛出 HibernateTemplate - getHibernateTemplate().execute(new HibernateCallback(
用于涉及复杂查询的数据集分页的一些策略是什么? count(*) 需要大约 1.5 秒,所以我们不想为每个页面 View 访问数据库。目前,此查询返回了约 45k 行。 以下是我考虑过的一些方法: 缓
我有一个 Web 服务器(DMZ 中的 Windows Server 2003)使用 JDBC 连接到 Informix 数据库(在本地网络中的 Windows Server 2012 上运行)。 将
即将推出的 Redis 4 中有异步 UNLINK,但在那之前,有哪些好的替代方案可以在没有阻塞或阻塞最少的情况下实现大型键集的 DELete? 重命名为某个唯一名称后跟 EXPIRE 1 秒是一个好
我有一段 Javascript 代码可以随机更改背景图像并且工作正常,但非常粗糙。我想在图像之间进行某种过渡,我想使用 fadeIn(slow) 但不知道如何将其合并到我的代码中,有人可以帮助我吗?干
我目前正在编写一个操作,作为其中的一部分,检查并递增 orderID 值并在对话中使用它进行响应。 该代码目前可以运行,但部分执行可能需要长达 10 秒的时间才能执行,这可能会使 action-on-
我正在使用 Java 学习 Swing,很早就遇到了让我的组件在窗口中显示的问题。如果我使用以下代码: import javax.swing.*; public class win extends J
好的,所以我的托管公司已经第四次暂停我的帐户了。这让我很烦,因为他们说的代码导致了问题: # Mon Mar 5 11:00:00 2012 # Query_time: 4.028706 Lock
我是一名优秀的程序员,十分优秀!