数据库索引都有哪些,有哪些优缺点
索引类型索引的类型有以下几种:
普通索引
唯一索引
主键索引
聚集索引
全文索引
普通索引:最基本的索引,没有任何约束限制
唯一索引:和普通索引差不多,但有唯一约束性,允许有 null
主键索引:特殊的唯一约束索引,不允许有 null,一张表最多只有一个主键索引
聚集索引:表中行的物理排序与键值的逻辑(索引)顺序相同。一个表只能包含一个聚集索引。与非聚集索引相比,聚集索引通常提供更快的数据访问速度。
全文索引:搜索数据表中的字段是不是包含我们搜索的字符串,就像搜索引擎中的模糊查询
索引的优点
提高数据的搜索速度
加快表与表之间的连接速度
在信息检索过程中,若使用分组及排序子句进行时,通过简历索引能有效的减少索引过程中所需的分组及排序时间,提高检索效率
索引的缺点
在我们建立数据库的时候,需要花费时间去建立和维护索引,而且随着数据的增加,需要维护它的时间也要增加
在创建索引的时候会占用存储空间
在我们需要修改表的数据时,索引还需要进行动态的维护,所以对数据库的维护带来了一定的麻烦
Mysql 怎样判断索引是否存在~索引创建完成后,可以利用 SQL 语句查看已经存在的索引。在 My ...
php-fpm优化方法 pm.min_spare_servers、pm.max_spare_servers 的真实意义
tags: [php,fpm,php-fpm]
categories: 学无止境
copyright_author_href: https://www.xiaohuihui.net
copyright_url: https://blog.csdn.net/a5816138/article/details/53670597copyright_author:
cover:
php-fpm 进程池优化方法php-fpm 进程池开启进程有两种方式,一种是static,直接开启指定数量的 php-fpm 进程,不再增加或者减少;另一种则是dynamic,开始时开启一定数量的 php-fpm 进程,当请求量变大时,动态的增加 php-fpm 进程数到上限,当空闲时自动释放空闲的进程数到一个下限。这两种不同的执行方式,可以根据服务器的实际需求来进行调整。
要用到的一些参数,分别是 pm、pm.max_children、pm.start_servers、pm.min_spare_servers 和 pm.max_spare_servers。
pm 表示使用那种方式,有两个值可以选择,就是 stat ...
Layui树形表格treetable的简单使用
tags: [treetable,layui,树形]
categories: 学无止境
copyright_author_href: https://www.xiaohuihui.net
copyright_url:copyright_author:
cover:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103<body class="pear-container"> <div class="layui-card"> <div class="layui-card-body"> <table id=&quo ...
【笔记】优麒麟安装宝塔后使用php无法访问网站的解决方案
tags: [linux,权限,宝塔]
categories: 学无止境
copyright_author_href: https://www.xiaohuihui.cc
copyright_url:copyright_author:
cover:
前言
小灰灰把本地系统更换成了优麒麟 Linux 系统做开发 PHP,安装宝塔后始终无法访问正确的站点。整理一下问题所在。
问题整理1、伪静态没有正常设置这种情况最为简单,设置好对应的伪静态即可。
2、PHP 版本没有设置正确开发 PHP 的时候的版本对应设置好即可。
3、无法找到路径这种情况很有可能是从其他地方迁移过来系统后路径不正确(原代码 的根目录里面有个 user.ini 配置文件)。
解决方案:删除掉 user.ini 即可。
4、404明明各种都设置正确,可是访问之后会提示 404。此时很有可能程序的目录文件夹没有权限。
1、更改文件夹权限
2、查看 nginx 配置的用户设置,是否有权限:
5、能访问静态文件,无法访问 php 等文件Nginx 的 user 和 php 版本里面的 php-fpm 配置里面的 use ...
git命令行拉取代码-git入门
Git 简介Git 是一种分布式版本控制系统,它可以不受网络连接的限制,加上其它众多优点,目前已经成为程序开发人员做项目版本管理时的首选,非开发人员也可以用 Git 来做自己的文档版本管理工具。2013年,淘宝前端团队开始全面采用 Git 来做项目管理,我也是那个时候开始接触和使用,从一开始的零接触到现在的重度依赖,真是感叹 Git 的强大。
Git 的 api 很多,但其实平时项目中 90%的需求都只需要用到几个基本的功能即可,所以本文将从 实用主义 和 深入探索 2 个方面去谈谈如何在项目中使用 Git,一般来说,看完 实用主义 这一节就可以开始在项目中动手用。
常用操作所谓实用主义,就是掌握了以下知识就可以玩转 Git,轻松应对 90%以上的需求。以下是实用主义型的 Git 命令列表,先大致看一下
git clone
git config
git branch
git checkout
git status
git add
git commit
git push
git pull
git log
git tag
接下来,将通过对:https://github.com ...
【类库】php-Env类库
类库代码env 环境变量:
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788<?php/** * Created by PhpStorm. * User: 小灰灰 * Date: 2022-04-26 * Time: 21:53:40 * Info: */namespace support\lib;Env::load();class Env{ /** * 环境变量数据 * @var array */ protected static $data = []; /** * 读取环境变量定义文件 * @access public * * @param string $file 环境变量定义文件 * * @r ...
【笔记】thinkphp5.1使用worker-gateway推送
使用 composer 安装:12composer require workerman/gateway-workercomposer require workerman/gatewayclient
开启端口号默认开启 1236 和 2348 端口
创建控制器等文件1、\application\http\Worker.php123456789101112131415161718192021222324252627282930313233343536373839<?php/** * Created by PhpStorm. * Info: */namespace app\http;use think\facade\Env;use think\worker\Server;class Worker extends Server{ protected $protocol = 'websocket'; protected $host = '0.0.0.0'; protected $port = '2120 ...
【笔记】thinkphp开发:windows下运行think-worker下的gateway
测试环境:win 10think-worker 默认有命令
1php think worker:gateway
但是如果在 win 下运行,会报错
GatewayWorker Not Support On Windows
但是这并不是说 gatewa 不能再 windows 上运行,而是 gateway 需要启动好几个命令行,windows 下无法直接处理,所以如果想要使用 think-worker 下的 gateway,还需要改造下。新建 command 命令,例如新建 workman。
附:自定义 TP 命令行命令行文件 application\common\command\Workerman.php
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989 ...
前后端分离和不分离的区别是什么
区别:前后端不分离中,前端页面看到的效果都是由后端控制,由后端渲染页面或重定向,即后端需要控制前端的展示,前端与后端的耦合度很高。前后端分离中,后端仅返回前端所需的数据,不再渲染 HTML 页面,不再控制前端的效果,前端与后端的耦合度相对较低。
一、前后端分离的概念1、前后端分离
前后端分离是一种架构模式,说通俗点就是后端项目里面看不到页面(JSP | HTML),后端给前端提供接口,前端调用后端提供的 REST 风格接口就行,前端专注写页面(html|jsp)和渲染(JS|CSS|各种前端框架);后端专注写代码就行。
前后端分离的核心:后台提供数据,前端负责显示
1、软件架构模式最熟悉MVC设计模式,Model—View-Controller 模型-视图-控制器
它是怎么工作的?通俗来说:你在页面输入一个网址(请求-Request),这个网址跑到哪里去了呢?就去调用接口(REST 风格),这个接口其实就是访问后端的一段代码(方法),后端有很多方法。
如何确定访问的是哪个方法?就是接口定义好的,比如:177.25.26.7/idp/user/lo ...
webman使用Nginx代理
当 webman 需要直接提供外网访问时,建议在 webman 前增加一个 nginx 代理,这样有以下好处。
静态资源由 nginx 处理,让 webman 专注业务逻辑处理
让多个 webman 共用 80、443 端口,通过域名区分不同站点,实现单台服务器部署多个站点
能够实现 php-fpm 与 webman 架构共存
nginx 代理 ssl 实现 https,更加简单高效
能够严格过滤外网一些不合法请求
Nginx 示例代码:
1234567891011121314151617upstream webman { server 127.0.0.1:8877;}server { server_name 站点域名; listen 80; root /your/webman/public; location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host; if (!-f $request_fil ...








