《mysql学习》-- mysql基本认识
MySQL
MySQL基本认识
mysql是单进程多线程,每个进程在电脑上能使用的内存最大是有限制的,32位系统mysql最大使用2.7g
表结构
所有的表都由表结构数据和表数据组成 - MyISAM: 1. 由下面三个文件组成 .frm:表结构文件 .MYD:表数据文件 .MYI:表索引文件 2. 不支持事务,支持表锁
-
InnoDB: 默认每个表都有一个表结构定义文件,所有表的数据都是放在同一个表空间的文件当中。 建议 定义InnoDB的每个表的数据都放在一个单独的表空间文件中,修改属性innodb_file_per_table 由下面两个文件组成 .frm:结构文件 .ibd:表空间(表数据和表索引) 支持事务、支持行锁
常用指令
-
SHOW TABLE STATUS LIKE ‘t_user’; SHOW ENGINES; show indexes from tableName show global variables 全局变量 show session variables会话变量 how variables like’autocommit’
数据类型
- varchar:最大存65535个字符即2个字节,每个字节都需要一个结束符占据一个空间
- char:最大存255个字符,char(5)如果存储不够5个字符,左边会补空格。可以在char上索引整个字段
- TINYINT:存储一个字节,即最大存储0至255或者-127至127,至于TINYINT(4)4只是控制的展示
- SMALLINT:占用2个字节
- MEDIUMINT:占用3个字节
- INT:占用4个字节,最大存2的32次方-1
- BIGINT:占用8个字节,最大存2的64次方-1
- FLOAT:占用4个字节
- DOUBLE:占用8个字节
- DECIMAL:
- DATE:占用3字节
- TIME:占用3个字节
- DATETIME:占用8个字节,从1000-01-01 00:00:00到9999-12-31 23:59:59
- TIMESTAMP:占用4个字节,从1970-01-01 00:00:00到2038-01-18 22:14:07
- YEAR:占用1个字节
语句
- TRUNCATE 用来清除表的时候,会重置id的计数器
- select * from users limit 10000,10。。 Select * From users Where userId >=(Select userId From users Order By userId limit 10000,1 ) limit 10 当偏移量大的时候使用后者性能更高。
mysql执行流程
-
连接管理器接受请求 线程管理器创建线程(一个线程响应一个请求,使用线程池) 用户模块认证用户 如果数据需要加密则建立安全连接 缓存模块将结构化数据存储,当同样查询语句进行查询时查询缓存
