mysql優化 - mysql KEY是什么鍵?有什么作用?
問題描述
1.表
CREATE TABLE jforum_posts (post_id int(11) NOT NULL AUTO_INCREMENT,topic_id int(11) NOT NULL DEFAULT ’0’,forum_id int(11) NOT NULL DEFAULT ’0’,user_id int(11) NOT NULL DEFAULT ’0’,post_time datetime DEFAULT NULL,poster_ip varchar(15) DEFAULT NULL,enable_bbcode tinyint(1) NOT NULL DEFAULT ’1’,enable_html tinyint(1) NOT NULL DEFAULT ’1’,enable_smilies tinyint(1) NOT NULL DEFAULT ’1’,enable_sig tinyint(1) NOT NULL DEFAULT ’1’,post_edit_time datetime DEFAULT NULL,post_edit_count int(11) NOT NULL DEFAULT ’0’,status tinyint(1) DEFAULT ’1’,attach tinyint(1) DEFAULT ’0’,need_moderate tinyint(1) DEFAULT ’0’, PRIMARY KEY (post_id), KEY user_id (user_id), KEY topic_id (topic_id), KEY forum_id (forum_id), KEY post_time (post_time), KEY need_moderate (need_moderate)) ENGINE=InnoDB AUTO_INCREMENT=31 DEFAULT CHARSET=utf8
2.問題
這里的KEY是什么鍵?是外鍵嗎?如果不是外鍵,它有什么用? KEY user_id (user_id), KEY topic_id (topic_id), KEY forum_id (forum_id),
問題解答
回答1:key是為表添加索引,索引的作用是增加數據庫的查詢速度。MySQL的數據庫引擎是InnoDB,它采用B+樹和哈希兩種數據結構的方式為表添加索引。EXPLAIN SELECT * FROM idc_work_order_main WHERE id = ’100’ 再用explain查看當前的SQL語句是否使用了索引,是如何使用的索引。
回答2:Key是索引約束,對表中字段進行約束索引的key的用途:主要是用來加快查詢速度的這里的語句:KEY user_id (user_id),KEY topic_id (topic_id),KEY forum_id (forum_id),是指為user_id,topic_id,forum_id三個字段創建索引mysql中key 、primary key 、unique key 與index區別
回答3:索引,增加查詢速度
相關文章:
1. css3 - 純css實現點擊特效2. javascript - 網頁打印頁另存為pdf的代碼一個問題3. css - chrome下a標簽嵌套img 顯示會多個小箭頭?4. vim - docker中新的ubuntu12.04鏡像,運行vi提示,找不到命名.5. mysql - 在不允許改動數據表的情況下,如何優化以varchar格式存儲的時間的比較?6. java中返回一個對象,和輸出對像的值,意義在哪兒7. docker網絡端口映射,沒有方便點的操作方法么?8. javascript - Img.complete和img.onload判斷圖片加載完成有什么區別?9. mysql 為什么主鍵 id 和 pid 都市索引, id > 10 走索引 time > 10 不走索引?10. javascript - 有適合開發手機端Html5網頁小游戲的前端框架嗎?
