mysql怎么查没有索引的表 mysql设置主键还要设置索引吗?
mysql设置主键还要设置索引吗?
不是,主键有索引的作用。当你创建或设置主键时,mysql会自动添加与主键对应的唯一索引,不需要额外添加。如果查询条件中没有使用主键,可以将查询字段设置为索引。如果要在主键上设置索引,主键有索引的功能。扩展数据:
1.主键必须是唯一索引,唯一性不一定是主键。
2.一个表可以有多个唯一索引,但只能有一个主键。
3.主键列不允许为空,而唯一索引列允许为空。
4.主键也可以由多个字段组成复合主键,复合主键也是唯一索引。
mysql有全局临时表吗?
让 让我们先谈谈临时表的概念。顾名思义,临时表是临时的,销毁的表就用完了。数据可以存储在临时文件系统或固定磁盘文件系统中。临时表如下:
1个全局临时表
这个临时表在数据库实例启动后生效,在数据库实例销毁后失效。在MySQL中,这个临时表对应的是内存表,也就是内存引擎。
2会话级临时表
该临时表在用户成功登录系统后生效,在用户退出时失效。MySQL中的临时表是指用cr:/usr/local/mysql/data# ln-s/run/shm//usr/local/MySQL/data/tmp _ spac:/usr/local/mysql/data#ls-l | gr: 28 tmp _ space 2-gt/run/shm/
然后把
innodb _ temp _ data _ file _ path tmp _ spac: 200 m: auto extend
添加到中[mysqld]下面的行。
重启MySQL服务后,
mysqlgtselect @ @ innodb _ t: tmp _ spac: 200 m: auto extend
1行一组(0.00秒)
编写一个存储过程来批量创建临时表:
分隔符$$
使用` t_girl`$$
drop procedure IF EXISTS ` sp _ create _ temporary _ table ` $ $
CREATEDEFINER`root`@`localhost `过程` sp_create_temporary_table `(
在f_无符号整数)
开始
声明i INT无符号默认值1
当我离开时
防御命令(Defense Order)
SET @ stmt CONCAT(create temporary table tmp,I,(id int,tmp_desc varchar(60))
从@stmt准备s1
执行s1
集合i i 1
结束时间
丢弃准备s1
结束$$
定界符
现在创建10个临时表:
mysqlgtcall sp _ create _ temporary _ table(10)
QueryOK,0行受影响(0.07秒)
如果在以前,我们只知道创建了10个临时表,但只能靠记忆或手工记录临时表的名称等信息。
现在,您可以直接从数据字典中检索相关数据。
mysqlgt select * from information _ _ temp _ table _ info
- - - - - -
| TABLE _ ID | NAME | N _ COLS | SPACE | PER _ TABLE _ TABLESPACE | IS _ COMPRESSED |
- - - - - -
| 56 | # SQL 1705 _ 2 _ 9 | 5 | 36 | FALSE | FALSE |
| 55 | # SQL 1705 _ 2 _ 8 | 5 | 36 | FALSE | FALSE |
| 54 | # SQL 1705 _ 2 _ 7 | 5 | 36 | FALSE | FALSE |
| 53 | # SQL 1705 _ 2 _ 6 | 5 | 36 | FALSE | FALSE |
| 52 | # SQL 1705 _ 2 _ 5 | 5 | 36 | FALSE | FALSE |
| 51 | # SQL 1705 _ 2 _ 4 | 5 | 36 | FALSE | FALSE |
| 50 | #sql1705_2_3 | 5 | 36 |假|假|
| 49 | # SQL 1705 _ 2 _ 2 | 5 | 36 | FALSE | FALSE |
| 48 | # SQL 1705 _ 2 _ 1 | 5 | 36 | FALSE | FALSE |
| 47 | # SQL 1705 _ 2 _ 0 | 5 | 36 | FALSE | FALSE |
- - - - - -
一组10行(0.00秒)
我 我将在这里停止功能。如果对性能感兴趣,可以找时间测试一下。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。