PHP MYSQL SQL语句优化

PHP MYSQL SQL语句优化,第1张

语句基本上没什么可优化的,最多就是查询条件的引号要取消,例如:

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]

有很多种方法可以优化:

数据库设置主从,进行读写分离;

数据分表,如按月份分表,需要统计数据就查总表;

优化查询语句,适当增加索引;

字段优化,对不常用或者没有必要的字段可以考虑放在另外一张表里,避免单表数据过大,字段过多。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8439399.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-16
下一篇 2023-04-16

发表评论

登录后才能评论

评论列表(0条)

保存