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. java - 自己制作一个视频播放器,遇到问题,用的是内置surfaceview类,具体看代码!2. javascript - vue 移动端的input 数字输入优化3. 服务器端 - 采用nginx做web服务器,C++开发应用程序 出现拒绝连接请求?4. javascript - 有什么兼容性比较好的办法来判断浏览器窗口的类型?5. 关于docker下的nginx压力测试6. python - pandas按照列A和列B分组,将列C求平均数,怎样才能生成一个列A,B,C的dataframe7. javascript - Angular controlller控制域和原生js的关系8. angular.js - Ionic 集成crosswalk后生成的apk在android4.4.2上安装失败???9. 为什么我ping不通我的docker容器呢???10. css3 - [CSS] 动画效果 3D翻转bug
