http://justcoding.iteye.com/blog/2116837
SELECT count(*) FROM tablename;百萬級別的數據也能很快返回結果,但是如果加了where條件之后速度直接慢下來了
當沒有WHERE語句對於整個mysql的表進行count運算的時候
MyISAM類型的表中保存有總的行數,而當添加有WHERE限定語句的時候Mysql需要對整個表進行檢索
從而得出count的數值
1、利用DISTINCT統計不重復的記錄
如:SELECT COUNT( DISTINCT id ) FROM tablename;//計算talbebname表中id不同的記錄有多少條
2、返回記錄不同的id的具體值
SELECT DISTINCT id FROM tablename;
注意:2的這種查發只能用在一個字段上,如果是SELECT DISTINCT id,name FROM tablename;查詢出來的結果返回的是 id與name同時相同才會被過濾,只有id或者name有相同的是不會過濾掉的;
mysql4.1以上可以用group_concat
另一種解決辦法是:SELECT id, type, count(DISTINCT id) FROM tablename group by id;//一定要加group by id
或者select id,type from a group by id;這樣也行吖
用distinct的時候,如果它有索引,mysql會把它轉成group by的方式執行
mysql無法遠程連接:1看給沒給訪問權限 服務其本地用外網賬號登陸
2以上都正確那就防火牆阻止或者ip地址不對