mysql優(yōu)化 - mysql KEY是什么鍵?有什么作用?
問(wèn)題描述
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.問(wèn)題
這里的KEY是什么鍵?是外鍵嗎?如果不是外鍵,它有什么用? KEY user_id (user_id), KEY topic_id (topic_id), KEY forum_id (forum_id),
問(wèn)題解答
回答1:key是為表添加索引,索引的作用是增加數(shù)據(jù)庫(kù)的查詢速度。MySQL的數(shù)據(jù)庫(kù)引擎是InnoDB,它采用B+樹和哈希兩種數(shù)據(jù)結(jié)構(gòu)的方式為表添加索引。EXPLAIN SELECT * FROM idc_work_order_main WHERE id = ’100’ 再用explain查看當(dāng)前的SQL語(yǔ)句是否使用了索引,是如何使用的索引。
回答2:Key是索引約束,對(duì)表中字段進(jìn)行約束索引的key的用途:主要是用來(lái)加快查詢速度的這里的語(yǔ)句:KEY user_id (user_id),KEY topic_id (topic_id),KEY forum_id (forum_id),是指為user_id,topic_id,forum_id三個(gè)字段創(chuàng)建索引mysql中key 、primary key 、unique key 與index區(qū)別
回答3:索引,增加查詢速度
相關(guān)文章:
1. 請(qǐng)教使用PDO連接MSSQL數(shù)據(jù)庫(kù)插入是亂碼問(wèn)題?2. node.js - nodejs開(kāi)發(fā)中常用的連接mysql的庫(kù)3. Python爬蟲如何爬取span和span中間的內(nèi)容并分別存入字典里?4. mysql - 分庫(kù)分表、分區(qū)、讀寫分離 這些都是用在什么場(chǎng)景下 ,會(huì)帶來(lái)哪些效率或者其他方面的好處5. 視頻文件不能播放,怎么辦?6. python - 數(shù)據(jù)與循環(huán)次數(shù)對(duì)應(yīng)不上7. mysql - 把一個(gè)表中的數(shù)據(jù)count更新到另一個(gè)表里?8. 黑客 - Python模塊安全權(quán)限9. flask - python web中如何共享登錄狀態(tài)?10. mysql 查詢身份證號(hào)字段值有效的數(shù)據(jù)
