限制sql表中没有行

时间:2014-04-17 16:14:08

标签: php sql database

我的数据库中的一个表中有大约100000行。我能够轻松获取结果,但是当我将行增加到200000以上时,那时它并没有给我任何回报。帮帮我这个家伙。我需要在表格中更改什么,因为我将来也要增加行数。

该表中有5个int类型和13个varchar数据类型列。

表格布局如下。

Create table feed(
PID int not null,
Percentdisc int not null,
name varchar(100) not null,
brand varchar(30) not null,
store varchar(30) not null,
price int not null,
category varchar(20) not null,
url1 varchar(300) not null,
emavail varchar(100) not null,
dtime varchar(100) not null,
stock varchar(30) not null,
description varchar(200) not null,
avail varchar(20) not null,
tags varchar(30) not null,
dprice int not null,
url2 varchar(300),
url3 varchar(300),
sid int primary key auto_increment);

选择我正在使用的查询

select * from feed where (NAME like '%Baby%' or NAME like '%Bassinet%')

1 个答案:

答案 0 :(得分:0)

1)查询可能会出现这样的错误 - Allowed memory size of 33554432 bytes exhausted (tried to allocate 43148176 bytes) in php,因为查询会占用过多的服务器内存。


尝试在脚本顶部添加以下代码 -

ini_set('memory_limit', '-1');

它将占用服务器的无限内存,它工作正常。


2)使用过多的数据,您必须使用MySQL Cursors - http://dev.mysql.com/doc/refman/5.0/en/cursors.html


3)或尝试使用unbuffered queries - http://www.php.net/manual/en/function.mysql-unbuffered-query.php