易截截图软件、单文件、免安装、纯绿色、仅160KB

mysql不能正确的使用 联合索引

在一个表上有2个联合索引y(a,b,c),x(a,c)
我查询的时候 select * from table where a=1201 order by c desc limit 20 的时候用explain查看,发现mysql用的是y索引
这样我在extra里看到有filesort,而不是我想要的x索引,这个怎么办?怎么才能用到我的x索引

select * from table FORCE  INDEX (x)
where a=1201
order by c desc limit 20

使用 Index Hint
详见MYSQL官方手册

MySQL官方文档 http://dev.mysql.com/doc/refman/5.1/zh/index.html


ok,我发现有的时候是使用x索引,有的时候是y
这是为什么呢?

因为这个表的数据现在大概有 200多w,估计以后还会多,用了filesort感觉很慢

引用ok,我发现有的时候是使用x索引,有的时候是y
这是为什么呢?


提供你的
show create table xxxx;
show index from xxxx;
explain select * from table where a=1201 order by c desc limit 20

| tb_goods |          0 | PRIMARY  |            1 | iid        | A        |    2350642 |    NULL | NULL  |      | BTREE      | NULL    |
| tb_goods |          1 | cid_total |            1 | cid        | A        |        5366 |    NULL | NULL  | 


相关问答:

mysql如何实现高效的搜索?

一个行业网站,要实现的功能要求为:

一搜索表单可选搜索 产品/资讯/商家,搜索时希望先搜标题后全文,当前的数据量估计3万多,定位期望在百万级也可用。

数据类型为innodb,当前的方法是对关键词进行 ......

mysql的连接超时时间怎么设置 - VC/MFC / 数据库

我是用mysql自带的C API
if(mysql_real_connect(&mysql,"125.0.0.108","root","root","home",3306,NULL,0))

AfxMessageBox("数据库连接失败") ......

mysql储存过程的问题

我现在学习MYSQL,问下mysql储存过程如何建立和使用,最好写成$sql="sql语句",$re=mysql_query($sql);谢谢
建议你先自己看一下文档中的例子。

http://dev.mysql.com/doc/refman/5.1/zh/stored-pro ......

MYSQL 事务的问题

SQL code:

create PROCEDURE aa(SqlCMD1 varchar(8000),SqlCMD2 varchar(8000),SqlCMD3 varchar(8000))
begin
declare exit handler for sqlexception rollback;
start TRANSACTION;
EXECUTE SqlCMD1;
EXE ......

MYSQL事务回滚的问题

SQL code:

CREATE PROCEDURE A()
BEGIN
DECLARE 'Constraint Violation'
CONDITION FOR sqlexception;
DECLARE EXIT HANDLER FOR
'Constraint Violation' ROLLBACK;
BEGIN TRAN ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号