mysql
文章平均质量分 57
moliyiran
这个作者很懒,什么都没留下…
展开
-
mysql分组取每组前几条记录(排序)
首先来造一部分数据,表mygoods为商品表,cat_id为分类id,goods_id为商品id,status为商品当前的状态位(1:有效,0:无效)。CREATE TABLE `mygoods` ( `goods_id` int(11) unsigned NOT NULL AUTO_INCREMENT, `cat_id` int(11) NOT NULL DEFAULT...转载 2020-02-27 18:13:03 · 1086 阅读 · 0 评论 -
mysql随机查一条
https://zhidao.baidu.com/question/143656911.html要从tablename表中随机提取一条记录,大家一般的写法就是:SELECT * FROM tablename ORDER BY RAND() LIMIT 1。 1 2 3 4 5 6 7 8 9 10 ...转载 2020-01-17 14:42:34 · 151 阅读 · 0 评论 -
PHP调用mysql显示Server sent charset (255) unknown
$ vim my.cnf下面是内容[client]default-character-set=utf8[mysql]default-character-set=utf8[mysqld]collation-server = utf8_unicode_cicharacter-set-server = utf8转载 2019-12-07 14:57:05 · 3608 阅读 · 0 评论 -
MySQL高级特性四:查询缓存
很多数据库产品都能够缓存查询的执行计划,对于相同类型的SQL就可以跳过SQL解析和执行计划生成截断。MySQL在某些场景下也可以实现,但是MySQL还有另一种不同的缓存类型:缓存完整的select查询结果,也就是查询缓存。MySQL查询缓存保存查询返回的完整结果。当查询命中该缓存,MySQL会like返回结果,跳过了解析、优化和执行截断。查询缓存系统会跟踪查询中涉及的每个表,如果这些表发生...转载 2019-11-29 22:55:27 · 104 阅读 · 0 评论 -
『浅入浅出』MySQL 和 InnoDB
作为一名开发人员,在日常的工作中会难以避免地接触到数据库,无论是基于文件的 sqlite 还是工程上使用非常广泛的 MySQL、PostgreSQL,但是一直以来也没有对数据库有一个非常清晰并且成体系的认知,所以最近两个月的时间看了几本数据库相关的书籍并且阅读了 MySQL 的官方文档,希望对各位了解数据库的、不了解数据库的有所帮助。本文中对于数据库的介绍以及研究都是在 MySQL 上进行...转载 2019-11-21 20:17:58 · 87 阅读 · 0 评论 -
如何优化MySQL insert性能
对于一些数据量较大的系统,面临的问题除了是查询效率低下,还有一个很重要的问题就是插入时间长。我们就有一个业务系统,每天的数据导入需要4-5个钟。这种费时的操作其实是很有风险的,假设程序出了问题,想重跑操作那是一件痛苦的事情。因此,提高大数据量系统的MySQL insert效率是很有必要的。经过对MySQL的测试,发现一些可以提高insert效率的方法,供大家参考参考。1.转载 2017-11-16 20:06:33 · 216 阅读 · 0 评论 -
MySQL之长连接、短连接、连接池(转载:http://www.ywnds.com/?p=9801)
当数据库服务器和客户端位于不同的主机时,就需要建立网络连接来进行通信。客户端必须使用数据库连接来发送命令和接收应答、数据。通过提供给客户端数据库的驱动指定连接字符串后,客户端就可以和数据库建立连接了。可以查阅程序语言手册来获知通过何种方式使用短连接、长连接。1. 短连接短连接是指程序和数据库通信时需要建立连接,执行操作后,连接关闭。短连接简单来说就是每一次操作数据库,都要打开和关闭数据库连...转载 2019-03-20 12:08:30 · 297 阅读 · 0 评论 -
MySQL连接池详解
使用场景数据库连接是一种关键的、有限的、昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出。对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标。数据库连接池正是针对这个问题提出来的。原理连接池基本的思想是在系统初始化的时候,将数据库连接作为对象存储在内存中,当用户需要访问数据库时,并非建立一个新的连接,而是从连接池中取出一个已建立的空闲连接对象。使用完毕...转载 2019-03-20 12:10:42 · 556 阅读 · 0 评论 -
CentOS定时备份MySQL数据库
1、编写备份脚本vi /usr/sbin/mysql_dy_backup.sh#!/bin/bash#备份路径BACKUP=/data/backup/sql/dy#当前时间DATETIME=$(date +%Y-%m-%d_%H%M%S)echo "===备份开始==="echo "备份文件存放于${BACKUP}/$DATETIME.tar.gz"#数据库地址...转载 2019-06-28 16:01:36 · 143 阅读 · 0 评论 -
centos7下添加mysql定时备份
1.创建要执行的备份任务创建mysql的备份文件的存储路径,我的是在/home下创建了mysql_data_bak文件夹给该文件夹分配744的权限chmod 744 mysql_data_bak创建要执行备份的脚本文件mysql.sh,我的是在/home/bin目录下建的touch mysql.sh给该文件分配744权限chmod 744 mysql.sh编辑该脚本...转载 2019-06-28 16:02:17 · 236 阅读 · 0 评论 -
CentOS中MySQL数据库的数据备份和恢复
数据库的备份和恢复要知道数据库安装在什么位置。本文所讲的数据库安装在 /usr/local/mysql文件中,请记住一点。一、MySQL数据备份1、在/usr/local/mysql/bin文件夹中有一个 mysqldump 文件,可以进入查看一下有没有;命令:cd /usr/local/mysql/命令: ls比如数据库中有一个pytest 数据库,备份这个数据...转载 2019-06-28 16:03:11 · 669 阅读 · 0 评论 -
MySQL 慢查询日志
MySQL有一种日志,叫做慢查询日志,主要就是用来记录一些耗时的查询操 作。通过这个日志我们就可以分析出哪些的操作是影响性能的,我们需要对其 进行一些优化措施。 视频链接:http://www.roncoo.com/course/view/658088f6e77541f5835b61800314083e 查看开启状态 上面的截图是我在 win...转载 2018-10-30 12:25:12 · 80 阅读 · 0 评论 -
MySQL 主从复制
发布于 2017-09-06 15:02:25MySQL的主从复制实现的原理就是 binlog 日志,那么我们主节点负责数据库写操作,而从节点负责读操作,这样在从节点上不需要使用事务,能够大大提高数据库的性能。那么这个时候面临的问题就是从节点如何来同步主节点数据的问题,就用到了我们之前说过的 binlog 日志。从节点通过 binlog 日志来与主节点进行数据同步。 视频链接:http...转载 2018-10-30 12:22:36 · 91 阅读 · 0 评论 -
MySQL 主主复制
发布于 2017-09-06 15:04:51MySQL的主主复制就是两台 mysql 节点互为主从。搭建起来 mysql 主从,再来搭建主主复制就非常简单了。 视频链接:http://www.roncoo.com/course/view/658088f6e77541f5835b61800314083e 在原来主从的基础上做如下操作: 1.开启原从节点的 binlog...转载 2018-10-30 12:21:56 · 84 阅读 · 0 评论 -
mysql分区
以前一直想到大数据优化是分库分表,但分库分表需要自己在代码中来逻辑判断,即既要实现逻辑分库分表,又要实现物理分库分表。mysql的分区就是为了解决这个问题的。直接在物理上实现分表,但是在代码逻辑上好像就是一个表样,不需要额外通过代码判断.分区有四种,而我们常用到的就是三种:range,list,hash.当然还有key.其中又以range和list最常用,list其实是range的一个特例1.ha...原创 2018-03-10 22:10:15 · 161 阅读 · 0 评论 -
mysql主从配置
我是在同一台服务器通过不同的端口来进行主从配置实验的。主从原理:master将操作写入本服务对应的二进制日志。slave就从主服务器的二进制读取到slave对应的relay-log文件里。然后再把这个日志在slave服务器里转换成可执行文件进行执行。达到同步目的。当然,这里slave去master读二进制日志,需要master赋予slave对应的权限.下面开始操作:先在ma原创 2018-01-24 18:40:00 · 147 阅读 · 0 评论 -
本机启动多个mysql服务
今天想试试本机配置mysql主从。所以要启动两个mysql服务。copy了配置文件,修改对应的sockt服务文件以及端口。然后带配置启动:./mysqld --defaults-file=/etc/my3309.cnf --user=root最后的--user=root不能省。不要问我为什么。然后我用mysql -hlocalhost -uroot -P3309 -p连接进去。创建原创 2018-01-24 16:18:48 · 1010 阅读 · 0 评论 -
单个select语句实现MySQL查询统计次数
单个select语句实现MySQL查询统计次数单个select语句实现MySQL查询统计次数的方法用处在哪里呢?用处太多了,比如一个成绩单,你要查询及格得人数与不及格的人数,怎么一次查询出来?MySQL查询统计次数简单的语句肯定是这样了:复制代码代码如下:select a.name,count_neg,count_plus from (select转载 2017-06-14 11:50:47 · 4388 阅读 · 0 评论 -
带您了解mysql CONCAT()函数
mysql CONCAT()函数用于将多个字符串连接成一个字符串,是最重要的mysql函数之一,下面就将为您详细介绍mysql CONCAT()函数,供您参考mysql CONCAT(str1,str2,…) 返回结果为连接参数产生的字符串。如有任何一个参数为NULL ,则返回值为 NULL。或许有一个或多个参数。 如果所有参数均为非二进制转载 2017-06-14 11:08:47 · 212 阅读 · 0 评论 -
MySQL中group_concat函数深入理解
本文通过实例介绍了MySQL中的group_concat函数的使用方法,比如select group_concat(name) 。 MySQL中group_concat函数 完整的语法如下: group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符']) 基本查询 mysql> select转载 2017-06-14 11:07:55 · 474 阅读 · 0 评论 -
mysql 日期
1.dayofweek,dayofyear,dayofmonthdayofweek(date)=>{1->7 周日->周六}dayofyear(1->366)dayofmonth(1-31)day(date)2.weekday(date)(0->6 周-->周日)3.year,monthselect year(now())select month(now())4.quar转载 2017-06-21 15:23:12 · 181 阅读 · 0 评论 -
58到家MySQL军规升级版
一、基础规范表存储引擎必须使用InnoDB 表字符集默认使用utf8,必要时候使用utf8mb4解读:(1)通用,无乱码风险,汉字3字节,英文1字节(2)utf8mb4是utf8的超集,有存储4字节例如表情符号时,使用它 禁止使用存储过程,视图,触发器,Event解读:(1)对数据库性能影响较大,互联网业务,能让站点层和服务层干的事情,不要交到数据库层(2)调试,排错,迁移都比较困难,扩展性较差 ...转载 2018-04-13 10:07:51 · 212 阅读 · 0 评论 -
正确建立索引以及最左前缀原则
1. 索引建立的原则用于索引的最好的备选数据列是那些出现在WHERE子句、join子句、ORDER BY或GROUP BY子句中的列。仅仅出现在SELECT关键字后面的输出数据列列表中的数据列不是很好的备选列SELECTcol_a <- 不是备选列FROMtbl1 LEFT JOIN tbl2ON tbl1.col_b = tbl2.col_c <- 备选列WHEREcol_d = e...转载 2018-04-13 10:18:57 · 874 阅读 · 0 评论 -
mysql master and slave have equal MySQL server UUIDs
最近在部署MySQL主从复制架构的时候,碰到了"Last_IO_Error: Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work." 这个错误提示。即...转载 2018-05-09 22:47:39 · 567 阅读 · 1 评论 -
MySQL 查询缓存
发布于 2017-09-06 15:19:41MySQL查询缓存提高单台节点的性能无外乎就那么几种方式,缓存是首当其冲的,因为内存的性能比磁盘高的太多。缓存也是一种典型的空间换时间的策略,缓存的实现也有太多的方式,从静态页面缓存到服务端动态缓存,再到数据库级别缓存等等。随着大数据的到来也产生了太多太多的内存数据库。缓存的工具也多种多样,随口一说就能说出很多,像 Redis,Memcached,...转载 2018-10-30 12:16:28 · 95 阅读 · 0 评论 -
MYSQL性能优化的最佳20+条经验
今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显。关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我们程序员需要去关注的事情。当我们去设计数据库表结构,对操作数据库时(尤其是查表时的SQL语句),我们都需要注意数据操作的性能。这里,我们不会讲过多的SQL语句的优化,而只是针对MySQL这一Web应用最多的数据库。希望下面的这些优化技巧对你有用。1. 为查询...转载 2018-10-10 20:31:53 · 141 阅读 · 0 评论 -
关于Mysql5.7高版本group by新特性报错
一个项目的开发到测试上线运营,团队对项目的管理不成熟会影响项目的开发效率。由于项目是我刚接手,独自在Centos搭建PHP环境,所以就考虑使用高版本,选择了Mysql5.7,本地开发环境还是Windows继承环境,PHP环境和Centos是统一的7.0,但是Mysql版本是5.3的,本地开发一切顺利,到了Centos下出现了一些问题,这就是因为开发环境和测试|线上环境不一致导致的。mys...转载 2018-08-28 10:24:38 · 149 阅读 · 0 评论 -
MySQL的btree索引和hash索引的区别
ash 索引结构的特殊性,其检索效率非常高,索引的检索可以一次定位,不像B-Tree 索引需要从根节点到枝节点,最后才能访问到页节点这样多次的IO访问,所以 Hash 索引的查询效率要远高于 B-Tree 索引。可 能很多人又有疑问了,既然 Hash 索引的效率要比 B-Tree 高很多,为什么大家不都用 Hash 索引而还要使用 B-Tree 索引呢?任何事物都是有两面性的,Hash 索引也一样...转载 2018-05-23 12:03:48 · 91 阅读 · 0 评论 -
【MySQL】MySQL分区表效率测试对比
这一段时间对数据库优化方面的认识深有体会,就以MySQL为例测试一下分区表的性能MySQL5.0好像不支持分区,我用的5.5版本,测试是否支持可通过以下方法:SHOW VARIABLES LIKE '%partition%';1如果结果为yes则说明支持,如下图:创建表不分区的表:CREATE TABLE no_part_tab(id INT DEFAULT NULL,remark VARCH...转载 2018-05-23 09:42:34 · 3882 阅读 · 3 评论 -
amoeba连接mysql--ERROR 2006 (HY000): MySQL server has gone away
amoeba version:amoeba-mysql-binary-2.1.0-RC5.tar.gzmysql version:5.5.20OS:Oracle Linux Server release 5.7java version: "1.6.0_14"Java(TM) SE Runtime Environment (build 1.6.0_14-b08)Java HotSpot(TM) Se...转载 2018-05-10 22:46:14 · 427 阅读 · 0 评论 -
Ameoba实现MySQL读写分离及负载均衡
Amoeba简介: amoeba是一个以MySQL为底层数据存储,并对应用提供MySQL协议接口的proxy。它集中地响应应用的请求,依据用户事先设置的规则,将SQL请求发送到特定的数据库上执行。基于此可以实现负载均衡、读写分离、高可用性等需求。与MySQL官方的MySQL Proxy相比,作者强调的是amoeba配置的方便(基于XML的配置文件,用SQLJEP语法书写规则,比基于lua...转载 2018-05-10 22:45:30 · 780 阅读 · 0 评论 -
amoeba启动报错The stack size specified is too small, Specify at least 228k
Amoeba启动错误:#amoeba startThe stack size specified is too small, Specify at least 228kError: Could not create the Java Virtual Machine.Error: A fatal exception has occurred. Program will exit.解决方法:打开bin...转载 2018-05-10 21:41:07 · 269 阅读 · 0 评论 -
mysql 字符串函数
SELECT char_length(name) FROM admin_sql_inject WHERE id=2format(X,D):将数字X的格式写成:’#,###,###,##’,以四舍五入方式保留小数点后d位,并将结果以字符吕的形式返回。若d为0,则返回不带小数点,或不含小数部分.SELECT format(num,3) FROM admin_sql_inject WHERE i转载 2017-06-21 15:01:15 · 160 阅读 · 0 评论