任何人都可以告诉我这个错误...
该数据库有40,000个新闻报道,但只有字段'故事'很大, '老'是数字值0或1, '标题'和'短篇小说'很短或很短。
任何建议表示赞赏。这是运行搜索数据库查询的结果。
Error: MySQL client ran out of memory
Statement: SELECT news30_access.usehtml, old, title, story, shortstory, news30_access.name AS accessname, news30_users.user AS authorname, timestamp, news30_story.id AS newsid FROM news30_story LEFT JOIN news30_users ON news30_story.author = news30_users.uid LEFT JOIN news30_access ON news30_users.uid = news30_access.uid WHERE title LIKE ? OR story LIKE ? OR shortstory LIKE ? OR news30_users.user LIKE ? ORDER BY timestamp DESC
答案 0 :(得分:1)
简单的答案是:不要在story
子句中使用SELECT
。
如果您想要故事,请限制返回的结果数量。例如,通过添加以下内容开始,即100个结果:
limit 100
到查询结束。这将获得100个最新的故事。
我还注意到您使用like
story
以及其他字符串列。您可能希望将match
与全文索引一起使用。这并不能解决您的直接问题(即向客户端返回过多数据)。但是,它会使您的查询运行得更快。
要了解全文搜索,请从documentation开始。