Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php MySQL查询占用CPU时间_Php_Mysql_Full Text Search - Fatal编程技术网

Php MySQL查询占用CPU时间

Php MySQL查询占用CPU时间,php,mysql,full-text-search,Php,Mysql,Full Text Search,我有一个正在运行的SQL查询,运行时需要3分钟,并使mysqld服务的使用率达到100%以上。 我需要在3个不同的表格上进行全文搜索。 我需要一种更好的方法来实现这一点,它不仅更快,而且不会使sql服务达到100%,这反过来会杀死它所驱动的网站。 我在Ubuntu linux上执行这些测试,但生产版本将在Redhat linux的企业版上运行 这是一个问题 SET @data = 'insert search text here'; SELECT * FROM stock LEFT JO

我有一个正在运行的SQL查询,运行时需要3分钟,并使mysqld服务的使用率达到100%以上。 我需要在3个不同的表格上进行全文搜索。 我需要一种更好的方法来实现这一点,它不仅更快,而且不会使sql服务达到100%,这反过来会杀死它所驱动的网站。 我在Ubuntu linux上执行这些测试,但生产版本将在Redhat linux的企业版上运行

这是一个问题

SET @data = 'insert search text here';
SELECT * FROM stock
    LEFT JOIN options ON options.stock_no = stock.stock_no
    LEFT JOIN udesc ON udesc.stock_no = stock.stock_no
WHERE
    (MATCH (stock.stock_no, stock.year, stock.mfg, stock.brand, stock.model, stock.type, stock.dsgn, stock.fptype, stock.chassis_no, stock.int_colour, stock.lbrand, stock.tagwords) AGAINST (@data IN BOOLEAN MODE))
    OR
    (MATCH (options.title) AGAINST (@data IN BOOLEAN MODE))
    OR
    (MATCH (udesc.data) AGAINST (@data IN BOOLEAN MODE))
AND stock.type NOT LIKE 'other'
ORDER BY STATUS ASC;
有人知道我该如何重新构造它,使它不仅能快速执行搜索,而且不会占用mysqld服务100%的CPU时间,从而扼杀网站吗?如果需要,我可以提供更多的表数据。 是的,所有的表都是全文索引的。正如我所说,这是一个有效的查询。
任何帮助都将不胜感激。

在选择之前运行解释,让我们查看输出。您的表是否已编制索引?我们将在解释中看到在运行此查询之前,我使用以下命令在全文索引中列出了所有受影响的字段:
ALTER TABLE stock ADD fulltext stk(库存编号、年份、制造商、品牌、型号、类型、dsgn、fptype、底盘编号、内饰颜色、品牌、标语);更改表格选项添加全文选项(标题);更改表格udesc添加全文dsc(数据;
“下次,您应该编辑原始帖子并添加这些详细信息,而不是三条注释。在选择之前运行一个解释,让我们查看输出。您的表是否已编制索引?我们将在解释中看到。^^在运行此查询之前,我使用以下命令在全文索引中列出了所有受影响的字段:
ALTER TABLE stock添加全文stk(股票编号、年份、制造商、品牌、型号、类型、dsgn、fptype、底盘编号、国际颜色、lbrand、标语);ALTER TABLE options添加全文opt(标题);ALTER TABLE udesc添加全文dsc(数据;
),下次您应该编辑原始帖子并在此处添加这些详细信息,而不是三条注释