我正在尝试使用简单查询向InnoDB表添加一行:
INSERT INTO zip_codes (zip_code, city) VALUES ('90210', 'Beverly Hills');
Run Code Online (Sandbox Code Playgroud)
但是当我尝试这个查询时,我得到以下内容:
SELECT COUNT(*) FROM zip_codes
Run Code Online (Sandbox Code Playgroud)
做一个"SELECT COUNT(*)FROM zip_codes"给了我188,959行,考虑到我在同一个数据库中有另一个810,635行的表,这似乎不太多.
我对InnoDB引擎缺乏经验,从未在MyISAM上遇到过这个问题.这里有哪些潜在的问题?
编辑:只有在zip_codes表中添加行时才会出现这种情况.
我写了一个查询,这在我的本地服务器上运行正确,它有更少的数据,
但是当我在生产服务器上运行它时会出错 - (这有更多的数据在6GB左右)
Incorrect key file for table '/tmp/#sql_3c51_0.MYI'; try to repair it
Run Code Online (Sandbox Code Playgroud)
这是我的查询
SELECT
`j25_virtuemart_products`.`virtuemart_product_id`,
`product_name`,
`product_unit`,
`product_s_desc`,
`file_url_thumb`,
`virtuemart_custom_id`,
`custom_value`
FROM
`j25_virtuemart_product_customfields`,
`j25_virtuemart_products`,
`j25_virtuemart_products_en_gb`,
`j25_virtuemart_product_medias`,
`j25_virtuemart_medias`
WHERE
(
`j25_virtuemart_products`.`virtuemart_product_id`=`j25_virtuemart_products_en_gb`.`virtuemart_product_id`
AND
`j25_virtuemart_products`.`virtuemart_product_id`=`j25_virtuemart_product_customfields`.`virtuemart_product_id`)
AND
`j25_virtuemart_products`.`virtuemart_product_id`=`j25_virtuemart_product_medias`.`virtuemart_product_id`
AND
`j25_virtuemart_product_medias`.`virtuemart_media_id`=`j25_virtuemart_medias`.`virtuemart_media_id`
GROUP BY `j25_virtuemart_products`.`virtuemart_product_id`
LIMIT 0, 1000;
Run Code Online (Sandbox Code Playgroud)
任何人都知道如何从该错误中恢复 - 比如otimize这个查询或任何其他方式谢谢你