亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

這里$bind數組里的created應該用int型,這樣MySQL查詢的效率會高?是這個理嗎?

這里$bind數組里的created應該用int型,這樣MySQL查詢的效率會高?是這個理嗎?

PHP
暮色呼如 2023-04-13 19:15:52
我的數據庫里有有一個int型字段,created,存的是10位整數,是個時間戳,建了索引。在查詢的時候,我這么寫$sql = 'SELECT * FROM products WHERE created > :created ORDER BY created DESC'$bind = array ('created' => '1348466907');$pdo->query ($sql, $bidn); // 這個pdo對象是我封裝的有人說,這里$bind數組里的created應該用int型,這樣MySQL查詢的效率會高。有這么回事么?
查看完整描述

3 回答

?
鴻蒙傳說

TA貢獻1865條經驗 獲得超7個贊

不會影響的。如果你的數據庫字段是int會進行類型轉換的。相反,比如你的數據庫字段是string,你的并且有index而且存的都是int的字符串,當查詢為

select * from t where t.intstring = 123

時會非常慢,因為數據庫會將表中的數據進行類型轉換。由string => int。轉換都是向小的方向轉換的。


查看完整回答
反對 回復 2023-04-17
?
揚帆大魚

TA貢獻1799條經驗 獲得超9個贊

觀察對比

EXPLAIN SELECT * FROM products WHERE created > 1348466907 ORDER BY created DESC;EXPLAIN SELECT * FROM products WHERE created > '1348466907' ORDER BY created DESC;

應該沒區別,從嚴謹的角度,你應該指定綁定數據類型如 PDO::PARAM_INT

MySQL查詢的效率重點還是在mysql的設計。


查看完整回答
反對 回復 2023-04-17
?
撒科打諢

TA貢獻1934條經驗 獲得超2個贊

跟PDO沒關系。

在小數據量時沒什么。

如果字段類型是INT,SQL指定為字符串。MySQL會多一個數據類型轉換的操作。
理論上來說,什么類型字段,就必須提交什么類型數據。


查看完整回答
反對 回復 2023-04-17
  • 3 回答
  • 0 關注
  • 126 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號