
MySQL
文章平均质量分 83
code301
后端工程师,目前工作中使用的语言为PHP,Golang,C#
敬畏每一行代码
展开
-
MySQL常用查询
1:使用SHOW语句找出在服务器上当前存在什么数据库:mysql> SHOW DATABASES;2:2、创建一个数据库MYSQLDATAmysql> CREATE DATABASE MYSQLDATA;3:选择你所创建的数据库mysql> USE MYSQLDATA; (按回车键出现Database changed 时说明操作成功!)4:查看现在的转载 2017-10-31 16:18:15 · 714 阅读 · 0 评论 -
php利用单例模式设计数据库连接Model类
之前在《【php】利用php的构造函数与析构函数编写Mysql数据库查询类》(点击打开链接)写过的Mysql数据库查询类还不够完美,利用《【Java】单例模式》(点击打开链接)介绍的思想可以将这个数据库链接类搞成单例,不会因为多个用户访问网站就创建一个数据库查询实例,拖慢整个网站的速度,让网站的数据库压力比较大,造成网站的速度下降得很厉害。单例实现最关键的,还是那3点:1、私有构造函数,这里无须像...转载 2018-03-28 10:04:21 · 391 阅读 · 0 评论 -
MySQL数据库视图:视图定义、创建视图、修改视图
目录视图相关的MySQL指令视图创建视图视图与数据变更视图是指计算机数据库中的视图,是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。——百度百科关系型数据库中的数据是由一张一张的二维关系表所组成,简单的单表查询只需要遍历一个表,而复杂的多表查询需...转载 2018-04-11 09:30:21 · 443 阅读 · 0 评论 -
PHP+MYSQL实现读写分离
1、Introduction之前写过2篇文章,分别是:Mysql主从同步的原理 Myql主从同步实战 基于此,我们再实现简单的PHP+Mysql读写分离,从而提高数据库的负载能力。2、代码实战<?phpclass Db{ private $res; function __construct($sql) { $querystr = strtolower(trim(su...转载 2018-04-04 09:41:22 · 2317 阅读 · 0 评论 -
MySQL搭建主从服务器与读写分离的实现
一 丶为什么要搭建主从服务器和实现读写分离 1.总结起来就一点,实现并发吞吐和负载能力。通过搭建主从服务器实现读写分离,提高MySQL的负载能力 2.主从的基本实现原理 (本例 主服务器ip: 192.168.2.187,后面简称 master;从服务器ip: 192.168.2.199 后面简称 slave) ⑴ 主(master)服务器配置 bin-log ⑵ 从(slave)服务器配置 ...原创 2018-05-09 17:43:10 · 1889 阅读 · 0 评论 -
记一次centOS7下mycli安装调试过程
1.为什么要安装mycli ? MyCli 是一个 MySQL 命令行工具,支持自动补全和语法高亮。也可用于 MariaDB 和 Percona。在linux中自动补全使用起来非常便捷2.安装题主使用的是centOS7,安装mycli前需要几个依赖包,分别是(也可自行选取其他安装源):yum -y install epel-releaseyum -y install python-pipin...原创 2018-05-03 11:55:00 · 2864 阅读 · 1 评论 -
百万级并发mysql架构
1 服务器环境 1.1 操作系统要求 操作系统环境 建议Centos 7 64位 1.2 系统环境要求 mysql-5.1.52(glibc23)(以上) apache2.2.0(以上) Amoeba for Mysql 1.3.1-BETA(以上) memcached-1.4.5(以上) Keepalived-1.1.20(以上) Lvs-1.2.1(以上) 2 服务器架构...原创 2018-05-22 17:23:10 · 3618 阅读 · 0 评论 -
MySQL通过binlog进行数据恢复
采用binlog恢复数据的两种情况1.数据库丢失或者drop 1)恢复系统自动备份 2)用binlog恢复系统备份时间到此刻的的数据(drop操作需要binlog删除drop记录)2.误操作update,delete 1)恢复系统自动备份 2)在binlog日志中删除误操作的操作语句,执行binlog恢复其他的数据或者在binlog中找到误操作的记录,用脚本回滚生成sql,...原创 2018-05-23 15:49:48 · 701 阅读 · 1 评论 -
MySQL + Atlas 部署读写分离
阅读目录1. 数据库用户配置2. 主从数据库连接3. Atlas配置4. 读写分离测试 序章Atlas是360团队弄出来的一套基于MySQL-Proxy基础之上的代理,修改了MySQL-Proxy的一些BUG,并且优化了很多东西。而且安装方便。配置的注释写的蛮详细的,都是中文。英文不好的同学有福了。Atlas官方链接: https://github.com/Qihoo360/Atlas/blob/...转载 2018-06-04 13:58:48 · 617 阅读 · 0 评论 -
千万级MySQL分页优化
对于只有几万条数据的表这样做当然没问题,也不会在用户体验上有何不妥,但是要是面对成百万上千万的数据表时,这样就不足以满足我们的业务需求了,如何做到对千万级数据表进行高效分页?首先要学会使用 explain 如果你还不会使用 explain 分析SQL语句 传送门 http://blog.itpub.net/559237/viewspace-496311一丶合理使用 mysql 查询缓存 结合复合索...原创 2018-06-06 12:03:27 · 9306 阅读 · 24 评论 -
浅谈MySQL查询优化
本文从以下几方面对MySQL优化进行分析获取有性能问题的SQL 通过慢查询日志获取有性能问题的SQL 慢查询日志内容 实时获取有性能问题的SQL SQL预处理解析 如何确定查询消耗时间 优化特定的SQL一丶获取有性能问题的SQL通过用户反馈获取存在问题的SQL,此用户一般为测试人员,例执行某一个查询非常慢(不推荐) 通过慢查询日志获取存在性能问题的SQL 实时获取存...原创 2018-07-22 23:40:19 · 639 阅读 · 0 评论 -
对比PHP对MySQL的缓冲查询和无缓冲查询
关于缓冲查询和无缓冲查询MySQL的客户端有两种类型的查询:缓冲查询:将接收查询的结果并把他们存储在客户端的缓存中,而且接下来获取行记录的请求仅仅从本地内获取。(1)优点:可以在结果集中自由地移动“当前行”的指针,这样很容易找到,因为结果是存在客户端的。(2)缺点:需要额外的内存来存储这些结果集,而且需要大量的内存,另外,php中用来运行查询的函数会一直到所有的结果都接收才会返回值。无缓...原创 2018-11-05 10:24:46 · 1140 阅读 · 0 评论 -
php session_set_save_handler 函数的用法
<?php /**@filename: session.class.php @description: 数据库保存在线用户session,实现在线用户功能! @notice: session过期时间一个小时,因为我们的站点是使用cookie(有效时间是1小时)登录。 因此我们只记录用户登录的时间...原创 2018-12-25 18:13:32 · 540 阅读 · 0 评论 -
mysql 分组取指定条数的数据
在数据条数不足的情况未测试:表结构如下:刘德华,周润发,未命名三个分组,每组三条数据实现三个分组,每组取一条数据SQL如下:SELECT *FROM ( ( SELECT g.id, g.project_id, g.group_name, g.group_user_id, ug.user_name FROM...原创 2019-06-26 17:53:55 · 2158 阅读 · 0 评论 -
mysql索引的使用和优化
关于MySQL索引的好处,如果正确合理设计并且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的MySQL就是一个人力三轮车。对于没有索引的表,单表查询可能几十万数据就是瓶颈,而通常大型网站单日就可能会产生几十万甚至几百万的数据,没有索引查询会变的非常缓慢。还是以WordPress来说,其多个数据表都会对经常被查询的字段添加索引,比如wp_comments表中针对5个字段设计了BTR...转载 2018-04-02 09:30:42 · 243 阅读 · 0 评论 -
原生MYSQL连接
<?phpdefine("HOST", "127.0.0.1");define("USER", "root");define("PWD", "root");define("DATABASE", "distributio");function mysqllink($pid){ $con = mysqli_connect(HOST,USER,PWD,DATABASE); // var_原创 2018-03-14 16:19:09 · 1748 阅读 · 0 评论 -
optimize table 优化表
一,原始数据1,数据量mysql> select count(*) as total from ad_visit_history; +---------+ | total | +---------+ | 1187096 | //总共有118万多条数据 +---------+ 1 row in set (0.0转载 2017-12-15 14:16:13 · 889 阅读 · 0 评论 -
MySQL 一个条件查询出数据表中所有满足条件的数据的方法
项目开发中遇到一个问题:搜索框只传入一个条件,在SQL查询的时候如何查询出所有满足条件的数据。想到的第一解决方案是在后端进行逻辑处理的时候进行 if...else...的拼接。但是拼接多个if...else...也不过是权宜之计,假如新增字段也不便于代码维护。查询mysql手册发现了一个非常有意思的函数 :CONCATmysql对这个 函数的描述是,字符串比较函数 ,官方例子/描述如下:原创 2017-12-15 17:49:33 · 20938 阅读 · 3 评论 -
MySQL函数
MySQL数据库提供了很多函数包括:数学函数;字符串函数;日期和时间函数;条件判断函数;系统信息函数;加密函数;格式化函数;一、数学函数 数学函数主要用于处理数字,包括整型、浮点数等。函数作用ABS(x)返回x的绝对值 SELECT ABS(-1) -- 返回1CEIL(x),CEILING(x)返回大于或转载 2018-01-02 17:45:19 · 216 阅读 · 0 评论 -
MYSQL 保留字大全
如下保留字,需要加反引号ADDALLALTERANALYZEANDASASCASENSITIVEBEFOREBETWEENBIGINTBINARYBLOBBOTHBYCALLCASCADECASE原创 2018-03-09 10:36:50 · 2875 阅读 · 0 评论 -
mysql存储过程
记录MYSQL存储过程中的关键语法:DELIMITER // 声明语句结束符,用于区分; CEATE PROCEDURE demo_in_parameter(IN p_in int) 声明存储过程 BEGIN …. END 存储过程开始和结束符号 SET @p_in=1 变量赋值 DECLARE l_int int unsigned default 4000000; 变翻译 2018-03-15 15:32:57 · 225 阅读 · 0 评论 -
MySQL中存储过程的创建,调用及语法
MySQL 存储过程是从 MySQL 5.0 开始增加的新功能。存储过程的优点有一箩筐。不过最主要的还是执行效率和SQL 代码封装。特别是 SQL 代码封装功能,如果没有存储过程,在外部程序访问数据库时(例如 PHP),要组织很多 SQL 语句。特别是业务逻辑复杂的时候,一大堆的 SQL 和条件夹杂在 PHP 代码中,让人不寒而栗。现在有了 MySQL 存储过程,业务逻辑可以封装存储过程中,这样不转载 2018-03-22 13:51:40 · 750 阅读 · 0 评论 -
使用mySQL存储过程为表批量插入数据
表结构及原表数据如下 : select * from u_user;利用mysql 存储过程批量往表中插入一千条数据创建存储过程delimiter $$ # 设置分隔符符 $$(除\之外任何字符都可以语句分割符)create procedure fill_data() #创建一个存储过程并定义存储过程的名字begin #开始存储过程set @i =1; #定义变量while @i<=...原创 2018-03-22 15:16:26 · 1150 阅读 · 0 评论 -
MySQL基础命令
1.1回顾重点 41.2数据库简介 41.3数据库的发展史 51.3.1层次模型 51.3.2网状模型 61.3.3关系模型 61.4Sql语句简介 71.5连接数据库 81.6退出数据库 91.7数据库操作 101.7.1创建数据库 101.7.2查询数据库 111.7.3显示数据库的创建语句 1原创 2018-03-22 15:28:21 · 212 阅读 · 0 评论 -
MySQL中变量的定义和变量的赋值使用
说明:现在市面上定义变量的教程和书籍基本都放在存储过程上说明,但是存储过程上变量只能作用于begin...end块中,而普通的变量定义和使用都说的比较少,针对此类问题只能在官方文档中才能找到讲解。前言MySQL存储过程中,定义变量有两种方式: 1、使用set或select直接赋值,变量名以@开头例如:set @var=1; 可以在一个会话的任何地方声明,作用域是整个会话,称为用户变量。2、以dec...翻译 2018-03-23 09:44:28 · 8320 阅读 · 0 评论 -
MySQL常用错误码
错误:1000 SQLSTATE: HY000 (ER_HASHCHK) 消息:hashchk错误:1001 SQLSTATE: HY000 (ER_NISAMCHK) 消息:isamchk错误:1002 SQLSTATE: HY000 (ER_NO) 消息:NO错误:1003 SQLSTATE: HY000 (ER_YES) 消息:YES错误:1004 SQLSTATE: HY000 (ER_C...原创 2018-03-23 11:59:39 · 2006 阅读 · 0 评论 -
记一次MySQL存储过程调试实例
第一次接触MySQL存储过程,资料看的也是一头雾水需求为有两张表,需要根据A表的查询结果对B表进行逻辑处理A表:B表:写的存储过程如下查找错误1328:错误:1328 SQLSTATE: HY000 (ER_SP_WRONG_NO_OF_FETCH_ARGS) 消息:不正确的FETCH变量数目。于是便更改存储过程代码如下:原创 2018-03-23 14:38:18 · 1750 阅读 · 0 评论 -
MySQL 索引为什么要选择 B+ 树
前言:每天都在跟 mysql 打交道,你知道执行一条简单的 select 语句,都经历了哪些过程吗?首先,mysql 主要是由 server 层和存储层两部分构成的。server 层主要包括连接器、查询缓存,分析器、优化器、执行器。存储层主要是用来存储和查询数据的,常用的存储引擎有 InnoDB、MyISAM,MySQL 5.5.5 版本后使用 InnoDB 作为默认存储引擎。连接器...转载 2019-07-03 14:22:49 · 328 阅读 · 0 评论