我被问到这两个基本的MySQL面试问题:
1) - 如何获取表的行数 回答: 选择模式表中的计数和访问值
采访者:还有另一种方法,它是什么? 我:我不知道2) - 你有一个很长时间工作的查询然后突然开始 慢,你该怎么办? 回答,使用说明
面试官:还有什么? 我:我不知道所以这些答案是什么,因为我主要是开发人员而不是mysql管理员。
答案 0 :(得分:1)
关于第一个问题,我想到的是使用SQL_CALC_FOUND_ROWS。
例如你可以这样做:
SELECT SQL_CALC_FOUND_ROWS * FROM table LIMIT 20;
在该查询之后,您可以获得选择的总行数:
SELECT FOUND_ROWS();
现在这通常不会比COUNT(*)选择快,如果你想使用分页并且需要总行数以及当前页面的结果,它会很方便。
关于第二个问题,我想知道他们是否希望你看看mysql服务器活动。通常,如果过去的查询突然变慢,那可能与发生大量插入或删除活动有关。