一、SQL里字符串字段內(nèi)容是全中文或者全字母或者全數(shù)字查詢速度的區(qū)別
基本沒區(qū)別,計(jì)算機(jī)底層對(duì)不同數(shù)據(jù)類型的分解不一樣,但效率上來(lái)說不會(huì)有太大的差別。
并且,如果是為了提升查詢效率,建議利用索引來(lái)實(shí)現(xiàn)。而在索引方面,中文和數(shù)字在查詢速度上的區(qū)別會(huì)更加小,基本可以忽略。
下面簡(jiǎn)單介紹一下索引的概念:
在MySQL的性能優(yōu)化中,索引是非常重要的一塊,好的索引邏輯可以大大提高M(jìn)ySQL的效率。正如google、百度一樣,索引也是期數(shù)據(jù)查詢中重要的一個(gè)因素。實(shí)際上,索引也是一張表,該表保存了主鍵與索引字段,并指向?qū)嶓w表的記錄。
使用索引固然有好處,但過多的使用索引將會(huì)造成濫用。因此索引也會(huì)有它的缺點(diǎn):
雖然索引大大提高了查詢速度,同時(shí)卻會(huì)降低更新表的速度,如對(duì)表進(jìn)行INSERT、UPDATE和DELETE。因?yàn)楦卤頃r(shí),MySQL不僅要保存數(shù)據(jù),還要保存一下索引文件。建立索引會(huì)占用磁盤空間的索引文件。延伸閱讀:
二、sql語(yǔ)句判斷是否為數(shù)字、字母、中文
select ascii(字段)
數(shù)字:48-57
字母:65-123
漢字:123+
如,要?jiǎng)h除某個(gè)全為數(shù)字的字段
DELETE FROM?table??WHERE ascii(name) between 48 and 57??
包含中文字符:
select * from 表名 where 列名 like ‘%[y-z]%’
包含英文字符:
select * from 表名 where 列名 like ‘%[a-z]%’?
包含純數(shù)字:
select * from 表名 where 列名 like ‘%[0-9]%’