<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="https://kb.idcspy.com/skins/common/feed.css?270"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-cn">
		<id>https://kb.idcspy.com/index.php?action=history&amp;feed=atom&amp;title=HostMonster%3A%E4%BC%98%E5%8C%96MySQL</id>
		<title>HostMonster:优化MySQL - 修订历史</title>
		<link rel="self" type="application/atom+xml" href="https://kb.idcspy.com/index.php?action=history&amp;feed=atom&amp;title=HostMonster%3A%E4%BC%98%E5%8C%96MySQL"/>
		<link rel="alternate" type="text/html" href="https://kb.idcspy.com/index.php?title=HostMonster:%E4%BC%98%E5%8C%96MySQL&amp;action=history"/>
		<updated>2026-05-13T20:01:44Z</updated>
		<subtitle>本站上此页的修订历史</subtitle>
		<generator>MediaWiki 1.16.5</generator>

	<entry>
		<id>https://kb.idcspy.com/index.php?title=HostMonster:%E4%BC%98%E5%8C%96MySQL&amp;diff=332&amp;oldid=prev</id>
		<title>大象无形: 新页面: 我持续接到CPU超载错误，如何解决?  优化你的MySQL:  参考文献： Queries and Indexes Article 2 of 4 Courtesy of:Ian Gilfillan 地址：http://www.databasejournal.com/fe...</title>
		<link rel="alternate" type="text/html" href="https://kb.idcspy.com/index.php?title=HostMonster:%E4%BC%98%E5%8C%96MySQL&amp;diff=332&amp;oldid=prev"/>
				<updated>2008-04-25T16:08:07Z</updated>
		
		<summary type="html">&lt;p&gt;新页面: 我持续接到CPU超载错误，如何解决?  优化你的MySQL:  参考文献： Queries and Indexes Article 2 of 4 Courtesy of:Ian Gilfillan 地址：http://www.databasejournal.com/fe...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新建页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;我持续接到CPU超载错误，如何解决?&lt;br /&gt;
&lt;br /&gt;
优化你的MySQL:&lt;br /&gt;
&lt;br /&gt;
参考文献： Queries and Indexes Article 2 of 4 Courtesy of:Ian Gilfillan 地址：http://www.databasejournal.com/features/mysql/article.php/10897_1382791_2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
了解一些做index（索引）的知识 允许你更有效地使用它们。首先，注意到当你使用索引更新表格时，索引也需要更新，这就有一个性能代价。除非你的系统运行的 inserts远多于selects，并且inserts 要很快速而selects不需要，这是一个值得的代价。&lt;br /&gt;
如果你想选择多于一种标准会如何? (就像你所看到的，只对你在WHERE从句中使用的那些域作标记有效.)查询: &lt;br /&gt;
SELECT firstname FROM employee; &lt;br /&gt;
没有使用索引。 对firstname的索引无效，但是&lt;br /&gt;
SELECT firstname FROM employee WHERE surname=&amp;quot;Madida&amp;quot;; &lt;br /&gt;
将能从surname的索引获得好处。&lt;br /&gt;
让我们看一写更复杂的例子，可以帮助我们提升查询。我们想要找到加班费率的一半低于20美元的员工。得知要做什么，你正确地给 overtime_rate做了标记， 看成where从句里的 column 。&lt;br /&gt;
ALTER TABLE employee ADD INDEX(overtime_rate); &lt;br /&gt;
运行查询。 &lt;br /&gt;
EXPLAIN SELECT firstname FROM employee WHERE overtime_rate/2&amp;lt;20; &amp;lt;br&amp;gt;&lt;br /&gt;
+----------+------+---------------+------+---------+------+------+------------+&amp;lt;br&amp;gt;&lt;br /&gt;
| table    | type | possible_keys | key  | key_len | ref  | rows | Extra      |&amp;lt;br&amp;gt;&lt;br /&gt;
+----------+------+---------------+------+---------+------+------+------------+&amp;lt;br&amp;gt;&lt;br /&gt;
| employee | ALL  | NULL          | NULL |    NULL | NULL |    2 | where used |&amp;lt;br&amp;gt;&lt;br /&gt;
+----------+------+---------------+------+---------+------+------+------------+&amp;lt;br&amp;gt;&lt;br /&gt;
一点都不好!每一份员工的单个记录都被读取，为什么这样? 问题出在查询的&amp;quot;overtime_rate/2&amp;quot; 部分. 每一个 overtime_rate (因此就是每一个记录)都必须被读取以被2分开。所以我们应该尝试不管编入索引的区域， 不需要进行任何计算。 这如何可能? 这就要用到学校里学的代数了! 你知道 'x/2 = y' 等价于 'x = y*2'.我们重写查询,看overtime_rate是否少于20*2，结果发生了什么. &lt;br /&gt;
EXPLAIN SELECT firstname FROM employee WHERE overtime_rate&amp;lt;20*2; &amp;lt;br&amp;gt;&lt;br /&gt;
+--------+-------+---------------+---------------+---------+------+------+----------+&amp;lt;br&amp;gt;&lt;br /&gt;
|table   | type  | possible_keys | key           | key_len | ref  | rows |Extra     |&amp;lt;br&amp;gt;&lt;br /&gt;
+--------+-------+---------------+---------------+---------+------+------+----------+&amp;lt;br&amp;gt;&lt;br /&gt;
|employee| range | overtime_rate | overtime_rate |       4 | NULL |    1 |where used|&amp;lt;br&amp;gt;&lt;br /&gt;
+--------+-------+---------------+---------------+---------+------+------+----------+&amp;lt;br&amp;gt;&lt;br /&gt;
好多了! MySQL 进行一次 20*2运算, 然后在索引里搜索该常量. 这里的法则是，保证索引区域与比较部分分离，这样 MySQL 可以用其来搜索，而不需要进行计算。. &lt;br /&gt;
你可能会说我耍小聪明,应该这样表达请求：&amp;quot; overtime rate 低于40的部分&amp;quot;,但是用户似乎有使用最坏的方式表达请求的习惯!&lt;/div&gt;</summary>
		<author><name>大象无形</name></author>	</entry>

	</feed>