select
*
from
aa
where
编号=指定编号
你的主索引,是primary
key吧,唯一、非空,这已经是最高级别的索引了,数据库也没有再次优化的余地
剩下可做的事情就是数据库系统优化,例如改变索引缓冲区长度(key_buffer)
一般,该变量控制缓冲区的长度在处理索引表(读/写 *** 作)时使用。mysql使用手册指出该变量可以不断增加以确保索引表的最佳性能,并推荐使用与系统内存25%的大小作为该变量的值。这是mysql十分重要的配置变量之一,如果你对优化和提高系统性能有兴趣,可以从改变
key_buffer_size变量的值开始。
如果myisam引擎,可以考虑使用myisamchk
-r进行修复,例如:
myisamchk
--sort_buffer_size=16m
--key_buffer_size=16m
--read_buffer_size=1m
--write_buffer_size=1m
-r
aa
那就用sphinx 技术,目前这个是最好的,没有之一。下面是我百度百科弄过来的,怎么使用还得你自己看白皮书了。
Sphinx的主要特性包括:
高速索引 (在新款CPU上,近10 MB/秒)
高速搜索 (2-4G的文本量中平均查询速度不到0.1秒)
高可用性 (单CPU上最大可支持100 GB的文本,100M文档)
提供良好的相关性排名
支持分布式搜索
提供文档摘要生成
提供从MySQL内部的插件式存储引擎上搜索
支持布尔,短语, 和近义词查询
支持每个文档多个全文检索域(默认最大32个)
支持每个文档多属性
支持断词
支持单字节编码与UTF-8编码。[1]
有很多种方法可以优化:数据库设置主从,进行读写分离;
数据分表,如按月份分表,需要统计数据就查总表;
优化查询语句,适当增加索引;
字段优化,对不常用或者没有必要的字段可以考虑放在另外一张表里,避免单表数据过大,字段过多。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)