扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
数据库的读取能一次查询完成的尽量不要分成多次查询
阿鲁科尔沁ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为成都创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:13518219792(备注:SSL证书合作)期待与您的合作!
不知道你用的是什么框架,如果有where_in方法的话可以用它来解决,先要构造出order_sn值的数组
没有的话就自己构造'or'条件字符串,然后用where一次查询完成
网站的速度 一般 是从架构 , 数据库, php代码方面优化的。
而php本身没什么优化的,只要按照php的编码 规范来写就ok了;
还有就是做好缓存;
另外就是注意 sql 语句里面的一些 小细节了,原则是:最先出现的条件,一定是过滤和排除掉更多结果的条件;第二出现的次之;以此类推。
例如 有个这样的表
字段a 字段b 字段c
1 7 11
2 8 10
3 9 13
1,SELECT * FROM table WHERE a’0’ AND b’1’ ORDER BY c LIMIT 10;
2,SELECT * FROM table WHERE b’1’ AND a’0’ ORDER BY c LIMIT 10;
1 和 2 结果是相同的但是 查询速度就大不相同,由于 表中 b 字段的数据 大部分 都是大于 1的 所以马上可以过滤 大部分 数据 ,所以 2 比较好些
1.建立索引,尽可能把索引建立到你你经常比较的字段上,如select
a,b,c,d
from
a
where
索引字段=值,这个索引字段最好是数值型数据
2.慢有更多情况,
情况1:远程查询,其实可能查询不慢,由于数据量大,传输过程慢
情况2:WHERE
后面的比较数据太多,比如
like
类的语句
情况3:需要哪个字段只取那个字段就行了,比如select
*
from
a与select
b,c,d
from
a速度是有差距的
3.数据库定期维护,压缩,把不常用的数据备份后放入备份库里,查询时查备份库等
问题补充:
.第一条:建立索引,怎么建立,我也听说过,但不知道怎么使用
答:每种数据建立索引的方法有差异,比如SQL
SERVER
2000中可对多个字段进行索引,比如SQL
SERVER2000中有命令
CREATE
INDEX
为给定表或视图创建索引。
只有表或视图的所有者才能为表创建索引。表或视图的所有者可以随时创建索引,无论表中是否有数据。可以通过指定限定的数据库名称,为另一个数据库中的表或视图创建索引。
语法
CREATE
[
UNIQUE
]
[
CLUSTERED
|
NONCLUSTERED
]
INDEX
index_name
ON
{
table
|
view
}
(
column
[
ASC
|
DESC
]
[
,...n
]
)
[
WITH
index_option
[
,...n]
]
[
ON
filegroup
]
index_option
::=
{
PAD_INDEX
|
FILLFACTOR
=
fillfactor
|
IGNORE_DUP_KEY
|
DROP_EXISTING
|
STATISTICS_NORECOMPUTE
|
SORT_IN_TEMPDB
}
第三条:数据库定期维护,压缩:怎么个压缩法?及时备份数据到备份库查询备份库,那查询时不是还慢吗?
答:这个有压缩工具,基本上每种数据库都有自己的压缩数据库的工具
写文件?IOdelay是很严重的,也可能造成阻塞。我想如果你有那么大的空间或者那么多的时间来写文件的话,建议你使用NoSQL吧。如果怕数据丢失,可以使用redis等。如果数据不重要,用memcached也是可以的。不要写文件了,如果读写次数多的话,很容易将磁盘写穿的。
redis和memcached的使用都很简单的,自己网上搜下吧。
1. 找到你mysql的安装目录,打开my.ini,如果是Linux服务器,那就是my.conf;
2.然后在[mysqld]选项下面添加:
skip-name-resolve
这个选项的意思是:禁用DNS解析,连接速度会快很多。
然后保存,重启mysql服务器,希望能帮你解决问题!
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流