MySql强制主键为什么不生效

勤奋的执着 2019-04-23 02:14:57
才从oracle转用到mysql数据库,好多感觉不懂,资料也查找不到,求教论坛各位大神帮忙~ 谢谢


如下建表语句,

CREATE TABLE `cyh_a` (
`id` int(5) NOT NULL,
`name` varchar(20) COLLATE utf8_bin DEFAULT NULL,
`type` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin


ID字段为主键

使用普通的查询语句,并没有走索引,如果这张表里的是百万级以上的数据,会很影响效率的,但是又不能为了让它走索引,而增加假的where条件,
EXPLAIN SELECT * FROM CYH_A ;


然后搜索资料之后发现有个叫强制主键的功能,但是它依然不走主键。。
EXPLAIN SELECT * FROM CYH_A FORCE INDEX(PRI);

id select_type table partitions type possible_keys key key_len ref rows filtered Extra
1 SIMPLE CYH_A \N ALL \N \N \N \N 5 100.00 \N


请问下这种select a1,a2,a3,a4... from table;查询数据时, 到底如何才能让它默认使用索引呢。。
...全文
266 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
遇星 2019-04-25
  • 打赏
  • 举报
回复
ALL不就是走自身的聚簇索引,innodb是索引组织表

56,687

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧