国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

mysql加單引號和不加單引號的性能比較

2024-07-24 12:36:36
字體:
來源:轉載
供稿:網友

剛剛我們說過了,生活中難免會有一些不如意,比如,我們用一個字符串類型的字段來作為主鍵,表面上,這太不如意了,然而,事實也證明這是有用的,問題也就出來了,當在查詢語句中對該字段值加上單引號和不加查詢耗時相差百倍.

我建立的測試表是這樣子的,代碼如下:

  1. CREATE TABLE `foo` ( 
  2.   `keyVARCHAR(10) NOT NULL
  3.   `timeINT(11) NOT NULL
  4.   PRIMARY KEY (`key`) 
  5. ) ENGINE=MyISAM DEFAULT CHARSET=utf8; 

然后插入30多萬條數據,執行下面的SQL語句:

  1. SELECT * 
  2. FROM `foo` 
  3. WHERE `key` =1293322797 

查詢花費 0.1288 秒,大約花費這么久的時間,然后,給1293322797加上單引號,代碼如下:

  1. SELECT * 
  2. FROM `foo` 
  3. WHERE `key` ='1293322797' 

查詢花費 0.0009 秒,基本上相差100倍,也就是說不加單引號MYSQL性能損失了100倍,很震撼的比例.

后來用EXPLAIN分別跑了一下上面兩條語句.

no-single-quotes-300x97

沒有單引號時

single-quotes-300x101

有單引號時

很明顯,不使用單引號沒有用上主索引,并進行了全表掃描,使用單引號就能使用上索引了,后來我用大于分別進行了測試,返回的結果集相同,而他們的耗時和上面一樣,用EXPLAIN測試,也和上面一樣,代碼如下:

  1. SELECT * 
  2. FROM `foo` 
  3. WHERE `key` >1293322797 
  4. SELECT * 
  5. FROM `foo` 
  6. WHERE `key` >'1293322797' 
  7. //開源軟件:Vevb.com 

就是這些,綜上所述,我們在寫SQL查詢的時候還是不厭其煩的加上單引號吧,似乎那沒有壞處.

總結一下,在mysql中單引號是代表字符不需要還編輯了,如果不是字符還需要mysql進行一個類型判斷操作所以自然就慢了.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 大港区| 余庆县| 房山区| 安图县| 富宁县| 凤台县| 公主岭市| 岳阳市| 台南市| 临海市| 如皋市| 竹溪县| 闽侯县| 台中县| 渝北区| 韶山市| 乐平市| 偏关县| 巴南区| 章丘市| 伊金霍洛旗| 凉山| 通城县| 专栏| 杭州市| 康保县| 南开区| 庆城县| 汽车| 阿拉尔市| 诸城市| 海安县| 抚顺市| 嘉峪关市| 应用必备| 井冈山市| 揭西县| 昌江| 栾城县| 公安县| 年辖:市辖区|