建表语言(SQLSERVEL数据库):create table [A]
(
[ID] int IDENTITY (1,1) PRIMARY KEY ,
[NAME] nVarChar(50) ,
[SEX] nVarChar(50) ,
)
A表上建立索引CREATE INDEX name
ON A (name)
插入:INSERT INTO A VALUES多条('ASD','1')和少量('QWE','1')
查询语句:select * from A WHERE NAME LIKE REVERSE('EW%')
是否比select * from A WHERE NAME LIKE '%WE'
的效率高???
(
[ID] int IDENTITY (1,1) PRIMARY KEY ,
[NAME] nVarChar(50) ,
[SEX] nVarChar(50) ,
)
A表上建立索引CREATE INDEX name
ON A (name)
插入:INSERT INTO A VALUES多条('ASD','1')和少量('QWE','1')
查询语句:select * from A WHERE NAME LIKE REVERSE('EW%')
是否比select * from A WHERE NAME LIKE '%WE'
的效率高???
这两个语句最后查询的应该都是 LIKE '%WE' , 都不会用到索引。
但是第一条查询数据会多一个reverse的步骤,理论上来说会更慢
|--Clustered Index Scan(OBJECT:([master].[dbo].[A].[PK__A__3214EC27716E3CF7]), WHERE:([master].[dbo].[A].[NAME] like N'%WE'))select * from A WHERE NAME LIKE '%WE'
|--Clustered Index Scan(OBJECT:([master].[dbo].[A].[PK__A__3214EC27716E3CF7]), WHERE:([master].[dbo].[A].[NAME] like N'%WE'))
这样的效率在数据内容多的时候 应该效率高,不晓得是不是哈