避免全表查詢,建立索引。order by
創(chuàng)新互聯(lián)專注于疏附企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站建設(shè),商城網(wǎng)站定制開(kāi)發(fā)。疏附網(wǎng)站建設(shè)公司,為疏附等地區(qū)提供建站服務(wù)。全流程按需定制,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)
優(yōu)化你的sql語(yǔ)句。
在where子句中盡量避免區(qū)域查詢,例如不等于,大于小于之類的操作符
like語(yǔ)句也會(huì)導(dǎo)致全表查詢
等等
mysql 中,不等于符號(hào)用''和 '!=' 都是可以的,但在sql server中,只能用''
echo $result;沒(méi)用(沒(méi)影響)
select * from ip where ip!='$ipa'
思路不對(duì) 在ip表中肯定有不止一條數(shù)據(jù) 所以$result 肯定有值 所以count($array) 肯定成立;
如果你ip表中保持一條數(shù)據(jù)就會(huì)一直執(zhí)行else 因?yàn)槟阌玫氖且慌_(tái)電腦 ip一直沒(méi)變
1.全值匹配
2.最佳左前綴法則
3.不在索引列上做任何操作(計(jì)算、函數(shù)、(自動(dòng)or手動(dòng))類型轉(zhuǎn)換),會(huì)導(dǎo)致索引失效而轉(zhuǎn)向全表掃描
4.存儲(chǔ)引擎不能使用索引中范圍條件右邊的列
5.盡量使用覆蓋索引(只訪問(wèn)索引的查詢(索引列和查詢列一直)),減少select *
6.mysql在使用不等于(!=或者)的時(shí)候無(wú)法使用索引會(huì)導(dǎo)致全表掃描
7.is null, is not null也無(wú)法使用索引
8.like以通配符開(kāi)頭(‘%abc...’)mysql索引失效會(huì)變成全表掃描的操作
9.字符串不加單引號(hào)索引失效
10.少用or,用它來(lái)連接時(shí)索引會(huì)失效
一、多數(shù)指令是相同的,包括創(chuàng)建和修正存儲(chǔ)過(guò)程的指令。
二、很多細(xì)微的指令有不同,具體如下(不僅):
1 mysql支持enum,和set類型,sql server不支持
2 mysql不支持nchar,nvarchar,ntext類型
3 mysql的遞增語(yǔ)句是AUTO_INCREMENT,而mssql是identity(1,1)
MYSQL:create table basic(id int key auto_increment,name varchar(20));
MSSQL: create table basic(id int identity(1,1) , name varchar(20))
4 msms默認(rèn)到處表創(chuàng)建語(yǔ)句的默認(rèn)值表示是((0)),而在mysql里面是不允許帶兩括號(hào)的
5 mysql需要為表指定存儲(chǔ)類型
6 mssql識(shí)別符是[],[type]表示他區(qū)別于關(guān)鍵字(可選用來(lái)包含表名、字段名),但是mysql卻是 `(重音符,也就是按鍵1左邊的那個(gè)符號(hào))
7 mssql支持getdate()方法獲取當(dāng)前時(shí)間日期,但是mysql里面可以分日期類型和時(shí)間類型,獲取當(dāng)前日期是cur_date(),當(dāng)前完整時(shí)間是 now()函數(shù)
8 mssql不支持replace into 語(yǔ)句,但是在最新的sql20008里面,也支持merge語(yǔ)法
9 mysql支持insert into table1 set t1 = ‘’, t2 = ‘’ ,但是mssql不支持這樣寫(xiě)
10 mysql插入多行支持這樣寫(xiě) insert into tabl1 values (1,1), (1,1), (1,1), (1,1), (1,1), (1,1), (1,1) MSSQL不支持
11 mssql不支持limit語(yǔ)句,是非常遺憾的,只能用top 取代limt 0,N,row_number() over()函數(shù)取代limit N,M
12 mysql在創(chuàng)建表時(shí)要為每個(gè)表指定一個(gè)存儲(chǔ)引擎類型,而mssql只支持一種存儲(chǔ)引擎
13 mysql不支持默認(rèn)值為當(dāng)前時(shí)間的datetime類型(mssql很容易做到),在mysql里面是用timestamp類型
14 mssql里面檢查是否有這個(gè)表再刪除,需要這樣:
if
exists (select * from dbo.sysobjects where id =
object_id(N'uc_newpm') and OBJECTPROPERTY(id, N'IsUserTable')
= 1)
但是在mysql里面只需要 DROP TABLE IF EXISTS cdb_forums;
15 mysql支持無(wú)符號(hào)型的整數(shù),那么比不支持無(wú)符號(hào)型的mssql就能多出一倍的最大數(shù)存儲(chǔ)
16 mysql不支持在mssql里面使用非常方便的varchar(max)類型,這個(gè)類型在mssql里面既可做一般數(shù)據(jù)存儲(chǔ),也可以做blob數(shù)據(jù)存儲(chǔ)
17
mysql創(chuàng)建非聚集索引只需要在創(chuàng)建表的時(shí)候指定為key就行,比如:KEY displayorder (fid,displayorder)
在mssql里面必須要:create unique nonclustered index
index_uc_protectedmembers_username_appid on dbo.uc_protectedmembers
(username asc,appid asc)
18 mysql text字段類型不允許有默認(rèn)值
19mysql的一個(gè)表的總共字段長(zhǎng)度不超過(guò)65XXX。
20一個(gè)很表面的區(qū)別就是mysql的安裝特別簡(jiǎn)單,而且文件大小才110M(非安裝版),相比微軟這個(gè)龐然大物,安裝進(jìn)度來(lái)說(shuō)簡(jiǎn)直就是.....
21mysql的管理工具有幾個(gè)比較好的,mysql_front,和官方那個(gè)套件,不過(guò)都沒(méi)有SSMS的使用方便,這是mysql很大的一個(gè)缺點(diǎn)。
22mysql的存儲(chǔ)過(guò)程只是出現(xiàn)在最新的版本中,穩(wěn)定性和性能可能不如mssql。
23 同樣的負(fù)載壓力,mysql要消耗更少的CPU和內(nèi)存,mssql的確是很耗資源。
24php連接mysql和mssql的方式都差不多,只需要將函數(shù)的mysql替換成mssql即可。
25mysql支持date,time,year類型,mssql到2008才支持date和time。
26變量賦值
MYsql:變量賦值SELECT @min_price:=MIN(price),@max_price:=MAX(price) FROM shop
MSsql:變量賦值SELECT @min_price=MIN(price),@max_price=MAX(price) FROM shop
三、總的來(lái)說(shuō),如果是簡(jiǎn)單的存儲(chǔ)過(guò)程代碼,要修改,不會(huì)太難。如果是復(fù)雜的系統(tǒng),要移植會(huì)很難很難。
網(wǎng)頁(yè)名稱:mysql怎么避免不等于,mysql中不等于
本文網(wǎng)址:http://jinyejixie.com/article2/hsioic.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計(jì)、網(wǎng)站設(shè)計(jì)、外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站制作、App開(kāi)發(fā)、網(wǎng)站內(nèi)鏈
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
移動(dòng)網(wǎng)站建設(shè)知識(shí)