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

mysql如何让视图利用索引?

刚发的帖子不够详细,来发个详细的。

1、我用存储过程动态生成视图。
2、每个table在time(时间戳)字段上均做了索引
3、各个table结构一样,view里面用union all,目的是把几张表拼成一张“大表”,这个view对外就是查询表。

下面是建立视图的存储过程,详细的我就不解释了,相信能够回答我这个问题的都能看懂。
SQL code:
CREATE DEFINER=`test`@`%` PROCEDURE `USP_ASS_CreateView`($ViewName VARCHAR(50),$TableName VARCHAR(100))
BEGIN
BEGIN
SET @DropView = CONCAT('DROP VIEW IF EXISTS ',$ViewName,';');
PREPARE DropView from @DropView;
EXECUTE DropView;
END;
BEGIN
DECLARE done INT DEFAULT 0;
DECLARE tablename VARCHAR(50);
DECLARE Cmd VARCHAR(8000) DEFAULT '';
DECLARE Cur CURSOR FOR SELECT table_name from information_schema.TABLES WHERE table_name LIKE CONCAT('%',$TableName,'%');
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
OPEN Cur;
REPEAT
FETCH Cur INTO tablename;
IF NOT done THEN
SET Cmd = CONCAT(Cmd,'select * from ',tablename,' union all ');
END IF;
UNTIL done END REPEAT;
CLOSE Cur;
SET @Cmd = CONCAT('Create ALGORITHM = MERGE view ',$ViewName,' AS ',LEFT(cmd,LENGTH(cmd)-10),';');
PREPARE stmt from @Cmd;
EXECUTE stmt;
END;
END$$

DELIMITER ;



然后查询语句如下:

explain select * from table1 where time > 100000
------------------------------------------------


相关问答:

mysql如何实现高效的搜索?

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

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

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

mysql 简单问题

假如数据库中有个test表,表中有id,Name,num,记录时间
id为自增长主键,name是名字,num表示其数量

1  nike  100        系统时间
2  nike  300  &n ......

mysql储存过程的问题

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

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

mysql...

在MySQL的指令窗里面输完密码后 然后闪一下指令窗就没了
什么原因啊?
新手啊 忘各位前辈指导哟。。。
问错地方了,去MYSQL版!


在运行中输入cmd后,在用net start mysql

哦  谢啦。。
......

mysql查询sql语句

mysql有表A:

id  num
1    4
2    9
3    14
4    20
5    25


表B:

id start end
1  0    5 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号