7 个解决方案
#1
代码、表结构、索引贴出来
#2
20万很少啊。为啥会慢呢~
#3
你的语句是什么? 如果仅是 select count(*) from tableName 则不会慢的。
建议贴出你的实际SQL语句及
explain select ...
show index from ...
以供分析。
问题说明越详细,回答也会越准确!参见如何提问。( 提问的智慧)
建议贴出你的实际SQL语句及
explain select ...
show index from ...
以供分析。
问题说明越详细,回答也会越准确!参见如何提问。( 提问的智慧)
#4
SQL 语句(个人修改一次了,原来没使用COUNT方法需要1分钟以上,目前需要2-3秒)
$sql = 'select * from K1.A ';
$sql .= 'JOIN K1.B ON K1.B.uid = K1.A.uid ';
$sql .= 'JOIN K2.C ON K2.C.Uid = K1.A.uid ';
$sql .= 'where `B`.`uTypeid` = 1 ';
$sql .= 'ORDER BY A.uid DESC ';
$number_sql = preg_replace('/\*/','COUNT(*) as number ',$sql);
//echo $sql;
//$query = $this->db->query($sql);
$data['number'] = $this->db->query($number_sql)->row();
$sql .= 'LIMIT 11 ';
$query = $this->db->query($sql);
表结构(K1,K2 表示两个数据库)
A
#5
A
uid -》 索引
B
uid -> 索引
C
Uid -》索引
三者相同联系
uid -》 索引
B
uid -> 索引
C
Uid -》索引
三者相同联系
#6
贴出执行计划explain select ....
show index from 表
show index from 表
#7
#1
代码、表结构、索引贴出来
#2
20万很少啊。为啥会慢呢~
#3
你的语句是什么? 如果仅是 select count(*) from tableName 则不会慢的。
建议贴出你的实际SQL语句及
explain select ...
show index from ...
以供分析。
问题说明越详细,回答也会越准确!参见如何提问。( 提问的智慧)
建议贴出你的实际SQL语句及
explain select ...
show index from ...
以供分析。
问题说明越详细,回答也会越准确!参见如何提问。( 提问的智慧)
#4
SQL 语句(个人修改一次了,原来没使用COUNT方法需要1分钟以上,目前需要2-3秒)
$sql = 'select * from K1.A ';
$sql .= 'JOIN K1.B ON K1.B.uid = K1.A.uid ';
$sql .= 'JOIN K2.C ON K2.C.Uid = K1.A.uid ';
$sql .= 'where `B`.`uTypeid` = 1 ';
$sql .= 'ORDER BY A.uid DESC ';
$number_sql = preg_replace('/\*/','COUNT(*) as number ',$sql);
//echo $sql;
//$query = $this->db->query($sql);
$data['number'] = $this->db->query($number_sql)->row();
$sql .= 'LIMIT 11 ';
$query = $this->db->query($sql);
表结构(K1,K2 表示两个数据库)
A
#5
A
uid -》 索引
B
uid -> 索引
C
Uid -》索引
三者相同联系
uid -》 索引
B
uid -> 索引
C
Uid -》索引
三者相同联系
#6
贴出执行计划explain select ....
show index from 表
show index from 表