[請問] 一切都相同的情況下純英文還是純數字比較

看板ask (問板)作者 ( 嗨浪)時間8年前 (2015/12/04 23:02), 8年前編輯推噓8(91108)
留言118則, 10人參與, 最新討論串1/1
一切都相同的情況下 以給實際字串大小來給空間的儲存格模式 來存在資料庫裡 來看 同位數 純英文字串 還是純數字字串 佔的空間大 哪個比對比較快? 網頁程式加密會影響效率嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.136.47.209 ※ 文章網址: https://www.ptt.cc/bbs/ask/M.1449241324.A.9EE.html

12/04 23:15, , 1F
印象中好像跟ascii code的編碼轉2進制有關
12/04 23:15, 1F

12/04 23:16, , 2F
一開始想說這是啥鬼問題 後來想想好像還挺難的??
12/04 23:16, 2F

12/04 23:17, , 3F
幹嘛不寫個程式跑跑看就知道了 ..
12/04 23:17, 3F

12/04 23:19, , 4F
一樣大/一樣快
12/04 23:19, 4F

12/04 23:22, , 5F
英文字不是占1byte 阿拉伯字不是4bit
12/04 23:22, 5F

12/04 23:24, , 6F
這系列問題你還要問幾篇
12/04 23:24, 6F

12/04 23:39, , 7F
自己實作看看不就行了
12/04 23:39, 7F

12/04 23:53, , 8F
1. 字串沒有純什麼的, 都一樣慢. 2.效率當然有影響.
12/04 23:53, 8F

12/04 23:54, , 9F
你是在跟人打賭嗎?
12/04 23:54, 9F

12/04 23:55, , 10F
英文占byte比較多 英文字串不是應該占空間比較大
12/04 23:55, 10F

12/04 23:57, , 11F
英文字比阿拉伯數字多 字碼也比較長 所以讀完辨識應
12/04 23:57, 11F

12/04 23:57, , 12F
字串就是字串沒有什麼英文數字之分
12/04 23:57, 12F

12/04 23:57, , 13F
比較久的時間
12/04 23:57, 13F

12/04 23:58, , 14F
string vs string or string vs int
12/04 23:58, 14F

12/04 23:59, , 15F
能放在cpu暫存器裡運算的才是數字, 字串都是在放記憶
12/04 23:59, 15F

12/05 00:00, , 16F
體裡做處理所以都一樣慢.
12/05 00:00, 16F

12/05 00:00, , 17F
在說啥?是要比對字串的什麼也沒講
12/05 00:00, 17F

12/05 00:03, , 18F
假設是一堆五位純英文字串 比對出apple字串
12/05 00:03, 18F

12/05 00:03, , 19F
一堆六位純拉伯數字字串 比對出123456
12/05 00:03, 19F
※ 編輯: badbadook (220.136.47.209), 12/05/2015 00:07:09

12/05 00:06, , 20F
你前面的po文例子不是這樣 XD
12/05 00:06, 20F

12/05 00:07, , 21F
一個五位一個六位不就不符合你文章第一行了嗎?
12/05 00:07, 21F

12/05 00:09, , 22F
apple字串 跟 12345字串 放到資料庫裡誰占容量大
12/05 00:09, 22F

12/05 00:10, , 23F
那些英文字串是同位數阿
12/05 00:10, 23F

12/05 00:10, , 24F
apple'字串' 12345'字串' 一樣大
12/05 00:10, 24F

12/05 00:12, , 25F
用程式來想的話 就想都是char 或是int占多少空間
12/05 00:12, 25F

12/05 00:12, , 26F
不過你說都用一樣的 所以占的空間都一樣
12/05 00:12, 26F

12/05 00:12, , 27F
所以sizeof()他們會一樣大
12/05 00:12, 27F

12/05 00:14, , 28F
所以 apple'字串' 12345'字串' 一樣大?
12/05 00:14, 28F

12/05 00:16, , 29F
英文有26個字母 字碼位數又多 讀完再筆會比較慢吧?
12/05 00:16, 29F

12/05 00:19, , 30F
英文字碼佔位多 那不是同位數自串占的容量比較大嗎?
12/05 00:19, 30F

12/05 00:20, , 31F
不是
12/05 00:20, 31F

12/05 00:24, , 32F
為何?y
12/05 00:24, 32F

12/05 00:26, , 33F
因為你沒有先了解字串是怎麼儲存的
12/05 00:26, 33F

12/05 00:27, , 34F
不好一絲我再說清楚 我是說它存在資料庫里歐
12/05 00:27, 34F

12/05 00:28, , 35F
存在哪裡跟怎麼存的是不一樣的問題
12/05 00:28, 35F
※ 編輯: badbadook (220.136.47.209), 12/05/2015 00:29:15

12/05 00:36, , 36F
比對字串和英文有26個字母沒有關係吧
12/05 00:36, 36F

12/05 00:37, , 37F
所以在資料庫裡一個英文阿拉伯數字中文字串都占一
12/05 00:37, 37F
還有 41 則推文
12/05 16:40, , 79F
才會根本不知道我在說什麼
12/05 16:40, 79F

12/05 16:41, , 80F
UTF-8 : 英文、數字為 1 Byte,其餘的符號(如:中文)為
12/05 16:41, 80F

12/05 16:43, , 81F
我覺得你根本沒理解我的問題耶?
12/05 16:43, 81F

12/05 16:44, , 82F
答案就一句話 我不知道 你 說這些幹什麼
12/05 16:44, 82F

12/05 16:46, , 83F
因為你自創名詞又問得不清不楚,正常人肯定是不理解的
12/05 16:46, 83F

12/05 16:46, , 84F
" apple字串 跟 12345字串 放到資料庫裡誰占容量大"
12/05 16:46, 84F

12/05 16:47, , 85F
你前面問得這個問題,你自己一直覺得前者會占比較多容量
12/05 16:47, 85F

12/05 16:47, , 86F
12/05 16:47, 86F

12/05 16:48, , 87F
從這邊就可以明顯看到你因為不了解而開始鬼打牆了
12/05 16:48, 87F

12/05 16:49, , 88F
當然,這個問題看來你最後是理解了,因為不管在哪種編碼
12/05 16:49, 88F

12/05 16:49, , 89F
別人都沒這麼多問題耶?
12/05 16:49, 89F

12/05 16:49, , 90F
方式下,通通都是一個英數字用1個Byte來儲存
12/05 16:49, 90F

12/05 16:51, , 91F
我都自己查出來了
12/05 16:51, 91F

12/05 16:51, , 92F
說錯,應該說不管何種編碼,一個英數字儲存的容量都一樣
12/05 16:51, 92F

12/05 16:52, , 93F
是查出來在哪...所以你現在知道"蘋果很少吃"跟"APPLE"
12/05 16:52, 93F

12/05 16:52, , 94F
儲存的時候誰占比較多容量了嗎?
12/05 16:52, 94F

12/05 16:55, , 95F
UTF-8 : 英文、數字為 1 Byte,其餘的符號(如:中文)為
12/05 16:55, 95F

12/05 16:56, , 96F
2~6 Bytes
12/05 16:56, 96F

12/05 17:03, , 97F
你這樣的回答是限定在字串編碼為UTF8的前提了,
12/05 17:03, 97F

12/05 17:03, , 98F
並且這樣也不完全是正確解答,
12/05 17:03, 98F

12/05 17:04, , 99F
因為你的原始問題其實並沒有交代你存字串的變數
12/05 17:04, 99F

12/05 17:04, , 100F
是宣告成哪種形式
12/05 17:04, 100F

12/05 17:05, , 101F
因為還要看你資料庫欄位選什麼檔案模式
12/05 17:05, 101F

12/05 17:06, , 102F
對阿 我要是都知道了 我還問這個問題做什麼呢?
12/05 17:06, 102F

12/05 21:10, , 103F
你還是先搞懂什麼叫字串, 字串只有長短問題, 字串比較
12/05 21:10, 103F

12/05 21:11, , 104F
時沒有編碼問題, 不管什麼碼比起來都一樣快.
12/05 21:11, 104F

12/05 21:15, , 105F
搜尋或比較都是memcmp而已, CPU才不管你什麼編碼.
12/05 21:15, 105F

12/06 00:32, , 106F
多謝c大回答
12/06 00:32, 106F

12/06 01:38, , 107F
memcmp要比對兩字元是否相等不是也要去讀字碼嗎?
12/06 01:38, 107F

12/06 01:39, , 108F
那英文 中文字碼大小不一樣無關嗎?
12/06 01:39, 108F

12/06 01:55, , 109F
簡單說是無關滴~
12/06 01:55, 109F

12/06 02:01, , 110F
我覺得你每一句都隱含兩個問題耶, 好難回答 XD
12/06 02:01, 110F

12/06 11:51, , 111F
所以一個100位的中文字串與一個100位的英文字串
12/06 11:51, 111F

12/06 11:53, , 112F
100位的中文字串在資料都是100位中文字串的資料庫裡
12/06 11:53, 112F

12/06 11:53, , 113F
100位的英字串在資料都是100位英文串的資料庫裡
12/06 11:53, 113F

12/06 11:54, , 114F
它們分別被比對出來的時間是一樣的
12/06 11:54, 114F

12/06 11:57, , 115F
因為我看memcmp程式還是要比對兩個字元的ASCII編碼
12/06 11:57, 115F

12/06 12:03, , 116F
還是某種編碼來比較 如果編碼位數較多 我想需耗時比
12/06 12:03, 116F

12/06 12:04, , 117F
較久
12/06 12:04, 117F

12/06 16:50, , 118F
字串長短影響比較的快慢
12/06 16:50, 118F
文章代碼(AID): #1MOQhidk (ask)
文章代碼(AID): #1MOQhidk (ask)