优化总结: 1.任何情况下SELECT COUNT(*) FROM xxx 是最优选择; 2.尽量减少SELECT COUNT(*) FROM xxx WHERE COL = ‘xxx’ 这种查询; 3.杜绝SELECT COUNT(COL) FROM tablename WHERE COL = ‘xxx’ 的出现。(其中COL非主键) 环境: MySQL版本:5.0.45 OS:Windows XP SP3 数据表一:sphinx +———-+——————+——+—–+———+—————-+ | Field | Type | Null | Key | Default | Extra | +———-+——————+——+—–+———+—————-+ | id | int(10) unsigned | NO | PRI | [...]
使用索引查找数据行 索引的作用是可以快速找到记录——避免全表扫描。这通常是添加索引的主要理由。MySQL中最常见的B树索引能够加快相等和前缀范围匹配查询。所以对于(A,B)列上的索引,它可以用于如条件A=5 ; A BETWEEN 5 AND 10的查询;但对于条件A=5 AND B BETWEEN 5 AND 10,索引对B BETWEEN 5 AND 10这个子条件的筛选不起作用,因为B不是索引的前缀。可以通过查看explain结果的key_len字段获知查询实际上使用了联合索引的哪几部分。一个常见问题是查询仅使用了联合索引中选择性不强的一小部分前缀。 这个错误的原因是忽略了MySQL的一个限制:一旦遇到范围查询,将不再使用索引的其余部分。如果在这个索引上使用A BETWEEN 5 AND 10 AND B=5 的条件,那么仅使用索引中的A前缀查找记录。有意思的是,这个限制仅对区间查询,对枚举式的范围查询,MySQL可以使用整个索引。如果你把条件改为A IN (5,6,7,8,9,10) AND B=5 ,查询性能可能会得到极大的改进。需要小心的是,优化器对大量的枚举值是很难优化的。上面仅讨论了MySQL如何使用单独的一个索引,对于需要“索引合并”的多个索引的使用,规则将会复杂很多。 使用索引进行记录排序 B树索引的另外一个优点是——它能够返回有序的记录,从而在要求排序的查询中避免额外的排序处理。排序和查找需求通常是一起出现,成为创建索引的理由,但是也可以因为需要对数据进行排序而创建一个索引。此时可以在explain结果中看到查询将按照索引的顺序进行全表扫描。这就要求你知道在什么条件下,既可以利用索引进行排序,又可以限制记录的行数。对于索引(A,B),像ORDER BY A ; ORDER BY A,B ; ORDER BY A DESC, B DESC 将能够利用索引排序(注意,如果选择全部记录且没有where子句,MySQL不会用索引进行排序)。但是对ORDER BY B 或 ORDER BY A, B DESC 将无法使用索引排序,因为要求的顺序和B树的顺序不一致。如果同时使用筛选和排序,如A=5 ORDER BY B ; A=5 ORDER BY B DESC; A>5 ORDER BY A ; A>5 ORDER BY A,B ; A>5 [...]
脚本说明: 把如下代码加入<body>区域中: 后退 前进 <input type="button" value="后退" onClick="history.go(-1)"> <input type="button" value="前进" onClick="history.go( 1 );return true;"> 返回 <form><input type="button" value="返回上一步" onClick="history.back(-1)"></form> 查看源码 <input type="button" name="view" value="查看源码" onClick="window.location="view-source:" +window.location.href"> 禁止查看源码 <body oncontextmenu="return false"></body> 刷新按钮一 <input type="button" value="刷新按钮一" onClick="ReloadButton()"> <script>function ReloadButton(){location.href="i001.htm";}</script> 刷新按钮二 <input type="button" value="刷新按钮二" onClick="history.go(0)"> 回首页按钮 <input type="button" value="首页" onClick="HomeButton()"> <script>function HomeButton(){location.href=http://www.winliuxq.com;}</script> 弹出警告框 <input type="button" value="弹出警告框" onClick="AlertButton()"> [...]



