数据库
runtoweb3
go,python ,php,mysql
展开
-
laravel-scout包的安装和适配elasticsearch引擎
1.laravel-scout扩展包的安装composer require laravel/scout会下载到laravel框架的vendor/laravle/scout目录下2.在config/app.php配置providers 数组中:添加scout服务提供者Laravel\Scout\ScoutServiceProvider::class,3.注册好 Scout 的...原创 2020-01-02 00:34:38 · 1104 阅读 · 1 评论 -
mysql查询执行顺序与优化
一条sql语句交到mysql数据库连接器client 首先要与 MySQL 建立连接,这就需要一个连接器,负责与 client 建立连接、权限验证、管理连接。分析器client 和 server 连接完成了,向 server 发送 sql 请求,连接器不会直接处理,会转给分析器,对这条 sql 进行词法分析,例如识别出来“select”关键字,知道这是一个查询语句,识别出表明、...原创 2019-10-14 16:26:59 · 1095 阅读 · 0 评论 -
redis的位图法统计活跃用户
假如某个系统又1亿个用户,有的用户可能一天登陆几次,有的用户可能几天登陆一次,如何记录用户的的活跃度(登陆的频繁度)先了解redis的setbit命令:SETBIT key offset value对key所储存的字符串值,设置或清除指定偏移量上的位(bit)。位的设置或清除取决于value参数,可以是0也可以是1。当key不存在时,自动生成一个新的字符串值...原创 2019-03-07 21:06:11 · 248 阅读 · 0 评论 -
sql函数FIND_IN_SET的使用
有时候数据库的字段中,会有某些字符用','拼接在一起的,需要查询某个id是否存在这个字符时,可以直接用select * from table where FIND_IN_SET('116', bulletin_record);...原创 2019-05-07 17:52:29 · 1005 阅读 · 0 评论 -
sql优化工具explain的使用
之前一直都知道分析一条sql语句用explain+sql,但是对分析结果有很多还是模棱两可,特别是最近写sql语句,一大堆联表查询嵌套子查询,五六个表联在一起,导致查询速度非常慢,所以好好研究下sql优化问题,准确来说是sql联表查询优化。一.首先详解一下explain工具explain SELECT swv.sstore_id,swv.sstore_address,swv.sstore_...原创 2019-05-25 23:54:28 · 2169 阅读 · 0 评论 -
mysql索引的原理与innodb数据结构
最近面试php刚问,mysql的优化还是经常被问到的,索引从网上找些资料好好恶补一下。MySQL 的索引索引是一种用来实现 MySQL 高效获取数据的数据结构。我们通常所说的在某个字段上建索引,意思就是让 MySQL 对该字段以索引这种数据结构来存储,然后查找的时候就有对应的查找算法。建索引的根本目的是为了查找的优化,特别是当数据很庞大的时候,一般的查找算法有顺序查找、折半查找、快...原创 2019-03-14 23:50:25 · 393 阅读 · 0 评论 -
mysql事务,锁相关知识
mysql的事务是经常使用到的,但是在并发过程中,事务相互不干扰需要消耗巨大的性能,所以事务有隔离级别。事务有四个属性,称为ACID属性:1、原子性(Atomicity):事务是一个原子单位,要么全部执行,要么全部不执行。2、一致性(Consistent):事务的开始和结束,数据都必须保持一致状态。3、隔离性(isolation):数据库系统提供隔离机制,保证并发事务之间是互相不干...原创 2019-03-15 17:46:45 · 276 阅读 · 0 评论 -
redis数据结构与高可用
一.Redis配置多个数据库redis有没有什么方法使不同的应用程序数据彼此分开同时又存储在相同的实例上呢?就相当于mysql数据库,不同的应用程序数据存储在不同的数据库下.Redis支持多个数据库,并且每个数据库的数据是隔离的不能共享,并且基于单机才有,如果是集群就没有数据库的概念。用select命令可以手动切换redis数据库,默认从0开始redis> select 0...原创 2019-07-03 17:42:11 · 224 阅读 · 0 评论 -
Innodb三大特性
插入缓冲技术机制为了解决这个问题,InnoDB设计出了插入缓冲技术,对于非聚集类索引的插入和更新操作,不是每一次都直接插入到索引页中,而是先插入到内存中。具体做法是:如果该索引页在缓冲池中,直接插入;否则,先将其放入插入缓冲区中,再以一定的频率和索引页合并,这时,就可以将同一个索引页中的多个插入合并到一个IO操作中,大大提高写性能。回忆一下在《MySQL - 浅谈InnoDB存储引擎》中提到的...转载 2019-09-02 17:10:34 · 976 阅读 · 0 评论 -
Innodb逻辑存储结构
Innodb逻辑存储结构一般分为表空间>段>区>页组成1.表空间表空间可以看成innodb逻辑存储的最高层,默认会有一个共享的表空间ibdata1,所有的数据都存放在这个表空间内,如果启用了innodb_file_pre_table,则每张表都会单独放在一个表空间中。但是有些数据是一定会放在ibdata1中的,例如回滚信息(undo),插入缓存索引页,事务信息等。2....原创 2019-09-06 17:50:42 · 400 阅读 · 1 评论 -
redis的事务原理
Redis事务如何来实现呢?先引用Redis官方文档的一句话:MULTI, EXEC, DISCARD and WATCH are the foundation of transactions in Redis.我们可以理解,Redis的事务是通过MULTI,EXEC,DISCARD和WATCH这四个命令来完成的,Redis的单个命令都是原子性的,所以这里确保事务性的对象是命令集合。Rei...转载 2019-03-15 00:05:21 · 174 阅读 · 0 评论 -
Navicat Premium 常用功能讲解,分析sql,处理锁表,查看数据库运行
Navicat Premium 常用功能讲解Navicat Premium 常用功能讲解1.快捷键 1.1. F8 快速回到当前对象列表 1.2. Ctrl + q 打开查询界面 1.3. Ctrl + d 快速修改当前的表结构 1.4. Ctrl + r 运行当前查询界面里面的 sql 语句 1.5. Ctrl + shift + r 运行当前选中的 sql 语句2.快速查...转载 2018-09-28 15:10:51 · 21092 阅读 · 0 评论 -
PHP操作MongoDB(增删改查)
MongoDB的PHP驱动提供了一些核心类来操作MongoDB,总的来说MongoDB命令行中有的功能,它都可以实现,而且参数的格式基本相似。PHP7以前的版本和PHP7之后的版本对MongoDB的操作有所不同,本文主要以PHP7以前版本为例讲解PHP对MongoDB的各种操作,最后再简单说明一下PHP7以后版本对MongoDB的操作。一、数据插入//insert()//参数1:一个...转载 2018-09-17 20:45:25 · 160 阅读 · 0 评论 -
php7操作mongodb
前面花了好几篇文章描述了mongodb在linux的搭建过程,从一个mongodb小白,终于可以通过代码来操作mongodb啦;先回顾一下mongodb服务的整个流程;1.在linux安装mongodb服务;最重要是选对版本。现在比较新的是mongodb 4.0, php7 最好是3.2版本以上;https://mp.csdn.net/postedit/823911622.安装php-...原创 2018-09-10 23:44:43 · 765 阅读 · 0 评论 -
composer在thinkphp的使用 及PHP-mongo-php-library的安装
1.首先进入项目的根目录 cd /usr/local/apache/htdoc/wxone2. 通过composer下载扩展composer require mongodb/mongodbcomposer首先会生成一个composer.json的文件,并且创建vendor目录(扩展文件就是下载到这个目录的),并且同时生成composer.lock文件3.Thinkphp加...原创 2018-09-10 00:19:49 · 568 阅读 · 0 评论 -
记录PHP操作mongodb扩展的坑 及php7安装mongodb扩展
1.下载扩展到php源码包扩展目录中,ext目录中保存着php官方包含的扩展源码包,没有的话就要自己去下载PHP的扩展路径在: /usr/local/src/php-7.0.12/ext/(PHP源码包的ext目录)下载地址:https://pecl.php.net/package/mongodb2.解压,进入目录3./usr/local/php/bin/phpize 生成con...原创 2018-09-06 22:32:22 · 6561 阅读 · 1 评论 -
Linux下安装mongodb
1.首先下载mongodb对应版本,到目录 /usr/local/src2.解压文件 tar -zxvf mongodb-linux-x86_64-3.2.123.进入目录cd mongodb-linux-x86_64-3.2.12, bin目录就是mongodb的执行文件,不同文件具有不同的功能;(由于下载的就是二进制文件,不用编译可直接执行)4.重命名文件夹mongod...原创 2018-09-04 22:37:35 · 102 阅读 · 0 评论 -
解决MySQL链接慢的原因
最近OJ及相关的网站打开异常的慢,简直崩溃,一直没找着原因。进入数据库服务器,进到mysql里,用show processlist命令查看一下,发现有很多的unauthenticated usergoogle了一下,发现这算属MySQL的一个bug,不管连接是通过hosts还是ip的方式,MySQL都会对DNS做反查,IP到DNS,由于反查的接续速度过慢(不管是不是isp提供的dn...转载 2018-12-04 11:25:55 · 466 阅读 · 0 评论 -
CentOS下Redis的安装
CentOS下Redis的安装前言安装Redis需要知道自己需要哪个版本,有针对性的安装,比如如果需要redis GEO这个地理集合的特性,那么redis版本就不能低于3.2版本,由于这个特性是3.2版本才有的。另外需要注意的是,Redis约定次版本号(即第一个小数点后的数字)为偶数的版本是稳定版(如2.8版、3.0版),奇数版本是非稳定版(如2.7版、2.9版),生产环境下一般需要使用...原创 2018-12-13 17:03:51 · 95 阅读 · 0 评论 -
常见sql语句相关的知识
1.group_concat 拼接非空值;(mysql只会排查null值而不会排除空字符串)用case..when..else..end把空字符转为null, group_concat只能拼接字符类型,需要用CAST转换$sql2 = "SELECT city, sum(active_num) AS active_num, su...原创 2019-02-25 09:42:02 · 159 阅读 · 0 评论 -
group_concat使用应注意的问题
group_concat的默认分隔符是“,”,若要改为其他分隔符,则使用SEPARATOR来指定,例如:mysql> SELECT student_id, GROUP_CONCAT(courses_id SEPARATOR '@#$') AS courses FROM student_courses WHERE student_id=2 GROUP BY student_id;除此...原创 2018-10-12 11:23:02 · 3611 阅读 · 0 评论