1.建立索引,盡可能把索引建立到你你經(jīng)常比較的字段上,如select
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、微信平臺小程序開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了瓊山免費建站歡迎大家使用!
a,b,c,d
from
a
where
索引字段=值,這個索引字段最好是數(shù)值型數(shù)據(jù)
2.慢有更多情況,
情況1:遠(yuǎn)程查詢,其實可能查詢不慢,由于數(shù)據(jù)量大,傳輸過程慢
情況2:WHERE
后面的比較數(shù)據(jù)太多,比如
like
類的語句
情況3:需要哪個字段只取那個字段就行了,比如select
*
from
a與select
b,c,d
from
a速度是有差距的
3.數(shù)據(jù)庫定期維護(hù),壓縮,把不常用的數(shù)據(jù)備份后放入備份庫里,查詢時查備份庫等
問題補(bǔ)充:
.第一條:建立索引,怎么建立,我也聽說過,但不知道怎么使用
答:每種數(shù)據(jù)建立索引的方法有差異,比如SQL
SERVER
2000中可對多個字段進(jìn)行索引,比如SQL
SERVER2000中有命令
CREATE
INDEX
為給定表或視圖創(chuàng)建索引。
只有表或視圖的所有者才能為表創(chuàng)建索引。表或視圖的所有者可以隨時創(chuàng)建索引,無論表中是否有數(shù)據(jù)??梢酝ㄟ^指定限定的數(shù)據(jù)庫名稱,為另一個數(shù)據(jù)庫中的表或視圖創(chuàng)建索引。
語法
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
}
第三條:數(shù)據(jù)庫定期維護(hù),壓縮:怎么個壓縮法?及時備份數(shù)據(jù)到備份庫查詢備份庫,那查詢時不是還慢嗎?
答:這個有壓縮工具,基本上每種數(shù)據(jù)庫都有自己的壓縮數(shù)據(jù)庫的工具
網(wǎng)絡(luò)不流暢。phpdbcommit數(shù)據(jù)庫是一種SQL事物解決數(shù)據(jù),數(shù)據(jù)寫入慢是因為網(wǎng)絡(luò)不流暢導(dǎo)致的,只需要更換一個流暢的網(wǎng)絡(luò)環(huán)境即可。
初步判斷是因為你sql執(zhí)行次數(shù)過多。
你的每條記錄都進(jìn)行了一次校驗sql,通過的還要導(dǎo)入,所以說至少有100萬條sql吧,一起執(zhí)行多條sql,是要快于逐條執(zhí)行每個sql 。
建議你在php中處理好全部的sql,用BEGIN END鏈接起來一起執(zhí)行,試試看,格式如下
BEGIN
sql1;
sql2;
sql3
...
sql100w;
END;
本身從幾百萬數(shù)據(jù)中查1000條就慢,你還用for去循環(huán)這個過程 不慢就怪了
連接語句怎么寫的,是不是用的域名,建議用IP,例如:
mysql_connect('127.0.0.1', 'root', '123456');