select a.tid,a.subject,a.cid,FROM_UNIXTIME(a.createtime,'%Y/%m-%d') date,a.resume,b.title,a.pic_url from oho_colonys_note a,oho_custom_cat b where a.havepic=1 and b.pid=18 and a.cid=b.cid order by a.createtime desc limit 1
其中a为新闻表,数据7W条数据,b为新闻分类表,数据516条
执行时间72s
是因为sql语句问题,还是其他的什么原因。。
跪求赐教啊!!!
其中a为新闻表,数据7W条数据,b为新闻分类表,数据516条
执行时间72s
是因为sql语句问题,还是其他的什么原因。。
跪求赐教啊!!!
解决方案 »
- pgsql中,如何将查询的结果导出成excel文件
- 有什么sql可以查询每天数据量中数据增长量啊?或者单个库的数据记录增长是多少?
- 换数据库用phpmyadmin导入.sql文件出现“有可能您发现了SQL分析器的臭虫。”
- 请问如何在论坛中实现文章翻到上一主题下一主题!SQL语句怎么写?
- sqlserver2005如何转化为mysql??
- sql2000里的数据想四舍五入到小数点后一位。应该怎么设置???
- mysql配置问题
- 关于pgsql
- Navicat for MySQL中导入CSV文件出现问题
- 安装my sql始终都差在最后一步,安装失败
- 求助 mysql 查询的一个问题 急需
- mysql时间相差问题
在两表CID上建立索引没有
CID、createtime 上建立复合索引试试
贴结果
EXPLAIN select a.tid,a.subject,a.cid,FROM_UNIXTIME(a.createtime,'%Y/%m-%d') date,a.resume,b.title,a.pic_url
from oho_colonys_note a,oho_custom_cat b
where a.havepic=1 and b.pid=18 and a.cid=b.cid
order by a.createtime desc
limit 1和show index from oho_colonys_note;
show index from oho_custom_cat你的语句中有 连接查询,还有排序,不是只在这两个字段上创建索引就可以有显著提高的。
'oho_colonys_note', '0', 'PRIMARY', '2', 'id', 'A', '73302', NULL, NULL, '', 'BTREE', ''
'oho_colonys_note', '0', 'id', '1', 'id', 'A', '73302', NULL, NULL, '', 'BTREE', ''
'oho_colonys_note', '0', 'uid', '1', 'tid', 'A', '73302', NULL, NULL, '', 'BTREE', ''
'oho_colonys_note', '1', 'siteid_cid', '1', 'siteid', 'A', NULL, NULL, NULL, '', 'BTREE', ''
'oho_colonys_note', '1', 'siteid_cid', '2', 'cid', 'A', '73302', NULL, NULL, '', 'BTREE', ''
'oho_colonys_note', '1', 'search1', '1', 'siteid', 'A', NULL, NULL, NULL, '', 'BTREE', ''
'oho_colonys_note', '1', 'search1', '2', 'ifcheck', 'A', NULL, NULL, NULL, '', 'BTREE', ''
'oho_colonys_note', '1', 'search1', '3', 'cid', 'A', NULL, NULL, NULL, '', 'BTREE', ''
'oho_colonys_note', '1', 'search1', '4', 'releasetime', 'A', '73302', NULL, NULL, '', 'BTREE', ''
'oho_colonys_note', '1', 'topped', '1', 'ord', 'A', NULL, NULL, NULL, '', 'BTREE', ''
'oho_colonys_note', '1', 'topped', '2', 'releasetime', 'A', NULL, NULL, NULL, '', 'BTREE', ''
'oho_colonys_note', '1', 'topped', '3', 'createtime', 'A', '73302', NULL, NULL, '', 'BTREE', ''
'oho_colonys_note', '1', 'havepic', '1', 'havepic', 'A', '73302', NULL, NULL, '', 'BTREE', ''
'oho_colonys_note', '1', 'createtime', '1', 'createtime', 'A', '73302', NULL, NULL, '', 'BTREE', ''这个是note的索引。对应的列名为
table non_unique key_name seq_in_index column_name collection Cardinality sub_part
packed null index_type comment
有点乱。
2. 配置你的my.cnf 或 my.ini ,
在 [mysqld]下配置参数max_length_for_sort_data=3000
如果没有配这个参数,就配上;如果原来有配,但是值很小,改大。嗯,3000基本够了吧。
在 [mysqld]下配置参数sort_buffer_size=2M
2M差不多够用了配置完后别忘了重启mysql服务。3.你用我改的这个再试试:
select
a.tid,
a.subject,
a.cid,
FROM_UNIXTIME(a.createtime,'%Y/%m-%d') date,
a.resume,
b.title,
a.pic_url
from oho_custom_cat b inner join oho_colonys_note a
on a.cid=b.cid
where a.havepic=1 and b.pid=18
order by a.createtime desc
limit 14.如果还是慢,建议拆成简单SQL,用存储过程。