《mysql学习》-- mysql基本认识

MySQL

  • MySQL
    • MySQL基本认识
      • 表结构
      • 常用指令
      • 数据类型
      • 语句
      • mysql执行流程

MySQL基本认识

mysql是单进程多线程,每个进程在电脑上能使用的内存最大是有限制的,32位系统mysql最大使用2.7g

表结构

所有的表都由表结构数据和表数据组成
- MyISAM:
1. 由下面三个文件组成
.frm:表结构文件
.MYD:表数据文件
.MYI:表索引文件
2. 不支持事务,支持表锁

  • InnoDB:
    1. 默认每个表都有一个表结构定义文件,所有表的数据都是放在同一个表空间的文件当中。
    2. 建议 定义InnoDB的每个表的数据都放在一个单独的表空间文件中,修改属性innodb_file_per_table
    3. 由下面两个文件组成
      .frm:结构文件
      .ibd:表空间(表数据和表索引)
    4. 支持事务、支持行锁

常用指令

  • SHOW TABLE STATUS LIKE ‘t_user’;
  • SHOW ENGINES;
  • show indexes from tableName
  • show global variables 全局变量
  • show session variables会话变量
  • how variables like’autocommit’

数据类型

  1. varchar:最大存65535个字符即2个字节,每个字节都需要一个结束符占据一个空间
  2. char:最大存255个字符,char(5)如果存储不够5个字符,左边会补空格。可以在char上索引整个字段
  3. TINYINT:存储一个字节,即最大存储0至255或者-127至127,至于TINYINT(4)4只是控制的展示
  4. SMALLINT:占用2个字节
  5. MEDIUMINT:占用3个字节
  6. INT:占用4个字节,最大存2的32次方-1
  7. BIGINT:占用8个字节,最大存2的64次方-1
  8. FLOAT:占用4个字节
  9. DOUBLE:占用8个字节
  10. DECIMAL:
  11. DATE:占用3字节
  12. TIME:占用3个字节
  13. DATETIME:占用8个字节,从1000-01-01 00:00:00到9999-12-31 23:59:59
  14. TIMESTAMP:占用4个字节,从1970-01-01 00:00:00到2038-01-18 22:14:07
  15. YEAR:占用1个字节

语句

  1. TRUNCATE 用来清除表的时候,会重置id的计数器
  2. select * from users limit 10000,10。。 Select * From users Where userId >=(Select userId From users Order By userId limit 10000,1 ) limit 10 当偏移量大的时候使用后者性能更高。

mysql执行流程

  • 连接管理器接受请求
  • 线程管理器创建线程(一个线程响应一个请求,使用线程池)
  • 用户模块认证用户
  • 如果数据需要加密则建立安全连接
  • 缓存模块将结构化数据存储,当同样查询语句进行查询时查询缓存

你可能感兴趣的:(mysql)