my-sql数据库表有数百万条数据记录。这个表包含一个主键[比如用户ID],序列号[可以有重复]和其他一些允许空值的列。 例如:说模式是
CREATE TABLE IF NOT EXISTS SAMPLE_TABLE (
USER_ID INTEGER NOT NULL,
SERIAL_NO NOT NULL,
DESCRIPTION VARCHAR(100),
PRIMARY KEY (USER_ID)
)ENGINE INNODB;
现在我想根据序列号搜索数据行。
我尝试首先添加一个唯一索引,包括[user id和serial no。]列
CREATE UNIQUE INDEX INDEX_USERS ON U=SAMPLE_TABLE (USER_ID,SERIAL_NO);
然后根据序列号搜索数据查询,如下所示;
SELECT * FROM SAMPLE_TABLE WHERE SERIAL_NO=?
但它没有成功,当我执行上面的select查询时,我在mysql服务器端出现OOM错误。感谢任何帮助。
答案 0 :(得分:0)
您不应该将user_id添加到您创建的thebthecindex中。您只需要对该查询的serial_no索引。
答案 1 :(得分:-1)
如果你提供了必要的代码,它会比给定的解释更好。但是首先你应该找到对seraial数字的id引用,然后搜索对应于id的列