1、基础环境
- PHP
- JDK
- C语言
- Python
- Nodejs
- 数据库:MYSQL ,Oracle, Ms SQLserver
- 缓存:Redis,memchache,MongoDB
2、容器:应用容器
- IIS
- Tomcat、weblogic、glassfish
- docker
3、应用程序底层配置
- 数据库连接
- 缓存连接
- 依赖接口
4、服务程序理解
- 所有的服务程序基本上都会绑定一个端口
- 计算机提供的端口数:65536个 从0~65535,每个端口只能用一次
- 操作系统会把1024以内端口视为安全端口,不允许没有注册的程序使用
- 用户可以使用的端口在8000以上,避免被操作系统限制。
- netstat -ano|findstr 3306: 查看系统中的3306端口是否开启
- tasklist |findstr keyword: 检查系统中启动的任务名称
5、部署服务
apache是使用http协议,该协议使用的传输端口就是80,如果使用非默认端口,就需要在host后面加上端口号
索引
一种可以进行快速排序的一种数据结构。
MYSQL索引的算法
- hash表
- B+tree
type:
- all:当explain的结果中type的值为all的时候,标识没有使用索引,如果该语句的执行速度又比较慢,则表示可以进行索引优化。
- 如果使用了索引,看到还是all,表示where的写法有错误,导致索引失效。
- const、system:当MYSQL对查询语句部分进行优化,并转换为一个常量时,使用这些类型访问。如将主键置于where列表中,MYSQL就能将该查询转换为一个常量,system是const类型的特例,当查询的表只有一行的情况下,使用system
- 导致索引失效的可能原因:
- 查询语句中使用OR关键词
- 查询语句中使用select *
- 复合索引,未遵循最左原则:复合索引分开用的时候,最左边的字段有效,其他字段不会索引。
- like使用%或_开头
- 需要类型转换
- where中索引列有运算
- where中索引列使用了函数
- 如果MYSQL觉得全表扫描更快时(数据极少)
索引的作用:提高查询效率
索引的缺点:
会增加空间占用,索引也要占磁盘空间
使DML效率变低:每次变动索引需要重新排序