MySQL
qw_xingzhe
身后是家园,眼前尽是世界!
展开
-
Mysql分析相关知识点
Mysql分析-profile详解MySQL performance_schema系列文章原创 2018-07-22 14:16:15 · 184 阅读 · 0 评论 -
MySql官方建议:Innodb表最佳实践
原文:http://dev.mysql.com/doc/refman/5.5/en/innodb-default-se.htmlBest Practices for InnoDB TablesIf you have been using InnoDB for a long time, you already know about features like transactions and转载 2017-07-18 17:25:31 · 1116 阅读 · 0 评论 -
mysql处理海量数据时的一些优化查询速度方法
最近一段时间由于工作需要,开始关注针对Mysql数据库的select查询语句的相关优化方法。 由于在参与的实际项目中发现当mysql表的数据量达到百万级时,普通SQL查询效率呈直线下降,而且如果where中的查询条件较多时,其查询速度简直无法容忍。曾经测试对一个包含400多万条记录(有索引)的表执行一条条件查询,其查询时间竟然高达40几秒,相信这么高的查询延时,任何用户都会抓狂。转载 2017-07-18 14:33:13 · 538 阅读 · 0 评论 -
MySQL的正则表达式?LIKE和REGEXP的区别?
MySQL的正则表达式?LIKE和REGEXP的区别?1. Mysql的正则表达式仅仅使SQL语言的一个子集,可以匹配基本的字符、字符串。例如:select * from wp_posts where post_name REGEXP 'hello',可以检索出列post_name中所有包含hello的行REGEXP '.og' .是正则表达式中里一个特殊的字符。它表示匹配一个字符,因转载 2017-07-30 08:29:52 · 17857 阅读 · 2 评论 -
mysql联合索引
命名规则:表名_字段名1、需要加索引的字段,要在where条件中2、数据量少的字段不需要加索引3、如果where条件中是OR关系,加索引不起作用4、符合最左原则https://segmentfault.com/q/1010000003984016/a-1020000003984281联合索引又叫复合索引。对于复合索引:Mysql从左到右的使用索引中的字段,一个查询可转载 2017-07-10 21:47:35 · 655 阅读 · 4 评论 -
Explain命令查看MySQL的SQL语句执行效率
Explain命令在解决数据库性能上是第一推荐使用命令,大部分的性能问题可以通过此命令来简单的解决,Explain可以用来查看 SQL 语句的执行效 果,可以帮助选择更好的索引和优化查询语句,写出更好的优化语句。Explain语法:explain select … from … [where ...]例如:explain select * from news;输出:转载 2017-07-10 17:45:48 · 2236 阅读 · 0 评论 -
数据库设计原则(不错)
1. 原始单据与实体之间的关系 可以是一对一、一对多、多对多的关系。在一般情况下,它们是一对一的关系:即一张原始单据对应且只对应一个实体。 在特殊情况下,它们可能是一对多或多对一的关系,即一张原始单证对应多个实体,或多张原始单证对应一个实体。 这里的实体可以理解为基本表。明确这种对应关系后,对我们设计录入界面大有好处。 〖例1〗:一份员工履历资料,在人力资源信息系统中,转载 2017-04-09 11:16:17 · 368 阅读 · 0 评论 -
30多条mysql数据库优化方法,千万级数据库记录查询轻松解决
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,Sql 代码 : select id from t where num is null;可以在 num 上设置默认值 0,确保表中 num 列没有 null 值,然转载 2017-03-03 16:32:57 · 318 阅读 · 0 评论 -
centos7下yum安装mysql
CentOS 7的yum源中貌似没有正常安装mysql时的mysql-sever文件,需要去官网上下载 # wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm# rpm -ivh mysql-community-release-el7-5.noarch.rpm# yum i转载 2017-01-22 16:10:18 · 287 阅读 · 0 评论 -
mysql 调优学习笔记(文:2011)
今天开始学习MySQL调优啦 (偶那东一榔头西一棒子的学习历程的又一棒子)好啦,言归正传: 首先,mysql调优有三个主要的方式,由低到高分别是:1、硬件调优2、修改mysql进程3、优化mysql查询一、硬件调优 先看看硬件调优吧。这个有两方面你可以考虑,首先对现有硬件条件进行修复,能调整的调整,能替换的替换,例如你可以把中央处理器(CPU)或磁盘速度转载 2017-02-06 16:36:41 · 389 阅读 · 0 评论 -
MySQL优化必须调整的10项配置(文2014年)
当我们被人雇来监测MySQL性能时,人们希望我们能够检视一下MySQL配置然后给出一些提高建议。许多人在事后都非常惊讶,因为我们建议他们仅仅改动几个设置,即使是这里有好几百个配置项。这篇文章的目的在于给你一份非常重要的配置项清单。我们曾在几年前在博客里给出了这样的建议,但是MySQL的世界变化实在太快了!写在开始前…即使是经验老道的人也会犯错,会引起很多麻烦。所以在盲目的运用这些推转载 2017-02-06 16:22:08 · 309 阅读 · 0 评论 -
MySQL性能优化总结
一、MySQL的主要适用场景1、Web网站系统2、日志记录系统3、数据仓库系统4、嵌入式系统二、MySQL架构图: 三、MySQL存储引擎概述1)MyISAM存储引擎MyISAM存储引擎的表在数据库中,每一个表都被存放为三个以表名命名的物理文件。首先肯定会有任何存储引擎都不可缺少的存放表结构定义信息的.frm文件,另外转载 2017-02-06 16:20:41 · 650 阅读 · 0 评论 -
数据库原理笔记
数据库概念数据库(Database,简称DB)是长期储存在计算机内、有组织的、可共享的大量数据的集合。数据库系统的特点数据结构化数据的共享性高,冗余度低,易扩充数据独立性高数据由DBMS统一管理和控制两大类数据模型概念模型也称信息模型,它是按用户的观点来对数据和信息建模,用于数据库设计。逻辑模型和物理模型,逻辑模型主要包括网状模型、层次模型、关系模型、面向对转载 2017-02-06 16:12:10 · 1129 阅读 · 0 评论 -
MySQL字符串函数:字符串截取
MySQL 字符串截取函数:left(), right(), substring(), substring_index()。还有 mid(), substr()。其中,mid(), substr() 等价于 substring() 函数,substring() 的功能非常强大和灵活。1. 字符串截取:left(str, length)mysql> select left('sqlstudy转载 2016-11-23 23:22:05 · 2508 阅读 · 0 评论 -
实战:MySQL Sending data导致查询很慢的问题详细分析
这两天帮忙定位一个MySQL查询很慢的问题,定位过程综合各种方法、理论、工具,很有代表性,分享给大家作为新年礼物:)【问题现象】使用sphinx支持倒排索引,但sphinx从mysql查询源数据的时候,查询的记录数才几万条,但查询的速度非常慢,大概要4~5分钟左右【处理过程】1)explain首先怀疑索引没有建好,于是使用explai转载 2017-07-18 17:24:39 · 885 阅读 · 0 评论 -
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock’(2) 是一个比较常见的数据库报错,而昨天我们的服务器也报了这个错误,所有服务全挂,而且恰逢阿里云升级,以为是升级的缘故,重启了下服务器,发现各种报错,之后稳定下来了ERROR 2002 (HY000): Can't con转载 2017-12-02 23:15:20 · 26223 阅读 · 2 评论 -
MySQL中tinytext、text、mediumtext和longtext详解
一、数字类型类型范围说明 Char(N) [binary]N=1~255 个字元binary :分辨大小写固定长度std_name cahr(32) not nullVarChar(N) [binary]N=1~255 个字元binary :分辨大小写可变长度转载 2018-01-14 20:46:30 · 2148 阅读 · 0 评论 -
MYSQL索引:对聚簇索引和非聚簇索引的认识
聚簇索引是对磁盘上实际数据重新组织以按指定的一个或多个列的值排序的算法。特点是存储数据的顺序和索引顺序一致。一般情况下主键会默认创建聚簇索引,且一张表只允许存在一个聚簇索引。在《数据库原理》一书中是这么解释聚簇索引和非聚簇索引的区别的:聚簇索引的叶子节点就是数据节点,而非聚簇索引的叶子节点仍然是索引节点,只不过有指向对应数据块的指针。因此,MYSQL中不同的数据存储引擎对聚簇索引的支持...转载 2018-07-22 14:11:50 · 214 阅读 · 0 评论 -
MySQL B+树索引和哈希索引的区别
导读在MySQL里常用的索引数据结构有B+树索引和哈希索引两种,我们来看下这两种索引数据结构的区别及其不同的应用建议。二者区别备注:先说下,在MySQL文档里,实际上是把B+树索引写成了BTREE,例如像下面这样的写法:CREATE TABLE t(aid int unsigned not null auto_increment,userid int unsigned n...转载 2018-07-21 08:17:31 · 189 阅读 · 0 评论 -
数据库锁表及阻塞的原因和解决办法
问题说明当多个用户并发地存取数据时,在数据库中就会产生多个事务同时存取同一数据的情况。若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性。加锁是实现数据库并发控制的一个非常重要的技术。在实际应用中经常会遇到的与锁 相关的异常情况,当两个事务需要一组有冲突的锁,而不能将事务继续下去的话,就会出现死锁,严重影响应用的正常执行。 在数据库中有两种基本的锁类型:排它锁(Exclusiv...转载 2018-07-13 09:11:19 · 3605 阅读 · 0 评论 -
mysql 最左匹配 联合索引
mysql建立多列索引(联合索引)有最左前缀的原则,即最左优先,如:如果有一个2列的索引(col1,col2),则已经对(col1)、(col1,col2)上建立了索引;如果有一个3列索引(col1,col2,col3),则已经对(col1)、(col1,col2)、(col1,col2,col3)上建立了索引;总结:1、b+树的数据项是复合的数据结构,比如(name,age,sex)的时候,b+...转载 2018-07-06 09:56:54 · 294 阅读 · 0 评论 -
mysql联合索引
命名规则:表名_字段名1、需要加索引的字段,要在where条件中2、数据量少的字段不需要加索引3、如果where条件中是OR关系,加索引不起作用4、符合最左原则https://segmentfault.com/q/1010000003984016/a-1020000003984281联合索引又叫复合索引。对于复合索引:Mysql从左到右的使用索引中的字段,一个查询可以只使用索引中的一部份,但只能是...转载 2018-07-09 16:38:55 · 303 阅读 · 0 评论 -
mysql查询中利用索引的机制
1、mysql选择索引不仅仅依据查询结构和索引结构,还会根据索引大概估算选择每种索引的数据量,然后选择他认为最快的索引。http://blogread.cn/it/article/5023?f=wb...原创 2018-07-09 13:17:01 · 524 阅读 · 0 评论 -
MySQL性能监控工具之phpMyAdmin
登录phpMyAdmin并访问状态标签。【服务器】展示服务器的基本信息,例如启动时间、最新一次启动处理了多少流量、链接信息。【进程】【查询统计】【所有状态变量】【监控】【建议】...原创 2018-06-22 16:18:50 · 2868 阅读 · 0 评论 -
Mysql数据库表分区深入详解
0、mysql数据库分区的由来?1)传统不分区数据库痛点mysql数据库中的数据是以文件的形势存在磁盘上的,默认放在/mysql/data下面(可以通过my.cnf中的datadir来查看), 一张表主要对应着三个文件,一个是frm存放表结构的,一个是myd存放表数据的,一个是myi存表索引的。[root@laoyang test]# ls -al总用量 1811444drwx------ 2...转载 2018-05-19 13:27:45 · 199 阅读 · 0 评论 -
MySQL主从延迟如何解决
一. 如何检测主从延迟 可以通过监控 show slave status\G 命令输出的 Seconds_Behind_Master 参数值来判断,是否存在主从延时。 NULL - 表示io_thread或sql_thread发生故障,也就是该线程的Running状态是No。(有故障) 0 - 该值为零,是我们极为渴望看到的情况,表示主从复制良好,可以认为lag不存在。(...转载 2018-05-18 11:13:19 · 280 阅读 · 0 评论 -
使用MySQL Proxy解决MySQL主从同步延迟
MySQL的主从同步机制非常方便的解决了高并发读的应用需求,给Web方面开发带来了极大的便利。但这种方式有个比较大的缺陷在于MySQL的同步机制是依赖Slave主动向Master发请求来获取数据的,而且由于服务器负载、网络拥堵等方面的原因,Master与Slave 之间的数据同步延迟是完全没有保证的。短在1秒内,长则几秒、几十秒甚至更长都有可能。 由于数据延迟问题的存在,当应用程序在Master ...转载 2018-05-18 10:34:55 · 346 阅读 · 0 评论 -
在docker-compose搭建mysql主从复制中遇到的几个问题
最初参考这篇文章来配置的:Docker Compose搭建mysql主从复制简单记录下配置过程:1、 配置主库my.cnf文件[mysqld]lower_case_table_names=1server-id=248 # 任意数字,一般填写服务器IP后几位log_bin=/tmp/mysql/mysql-binbinlog-do-db=whalephp #指定要同步的数据库,不指定则同步全...原创 2018-05-06 22:49:28 · 1255 阅读 · 0 评论 -
mysql版本选择最终建议
1、稳定版:选择开源的社区版的稳定版GA版本。2、选择mysql数据库GA版本发布后6个月以上的GA版本。3、要选择前后几个月没有大的BUG修复的版本,而不是大量修复BUG的集中版本。4、最好向后较长时间没有更新发布的版本。5、要考虑开发人员开发程序使用的版本是否兼容你选的版本。6、作为内部开发测试数据库环境,跑大概3-6个月的时间。7、优先企业非核心业务采用新版本的数据库GA版本软件。8、向DB...转载 2018-05-03 19:06:32 · 34541 阅读 · 1 评论 -
mysql自定义函数应用场景之拆分字段字符串
需求:count_num字段为字符串,值为2个数字拼合而成,需要能够针对这2个值分别排序。BEGIN DECLARE retval varchar(80); IF get_type=0 THEN set retval = substring_index(count_num,'|',1); ELSE set retval = substring_index(count_num,...原创 2018-03-31 18:10:23 · 1093 阅读 · 0 评论 -
MySQL配置文件my.cnf参数优化和中文详解
[client]port = 3306socket = /tmp/mysql.sock[mysqld]port = 3306socket = /tmp/mysql.sockbasedir = /usr/local/mysqldatadir = /data/mysqlpid-file = /data/mysql/mysql.piduser = my转载 2016-10-02 15:52:36 · 349 阅读 · 0 评论 -
查看MySQL配置文件路径及相关配置
(1)关于配置文件路径有时候,我发现虽然尝试修改了配置文件的一些变量,但是并没有生效。后来才发现原来是因为修改的文件并非MySQL服务器读取的配置文件。如果不清楚MySQL当前使用的配置文件路径,可以尝试这样查看:从上图可以看出, 服务器首先会读取/etc/my.cnf文件,如果发现该文件不存在,再依次尝试从后面的几个路径进行读取。(2)关于配置转载 2016-10-01 13:21:22 · 627 阅读 · 5 评论 -
总结PHP程序员最常犯的11个MySQL错误
对于大多数web应用来说,数据库都是一个十分基础性的部分。如果你在使用PHP,那么你很可能也在使用MySQL—LAMP系列中举足轻重的一份子。 对于很多新手们来说,使用PHP可以在短短几个小时之内轻松地写出具有特定功能的代码。但是,构建一个稳定可靠的数据库却需要花上一些时日和相关技能。下面列举了我曾经犯过的最严重的11个MySQL相关的错误(有些同样也反映在其他语言/数据库的使用上)。。转载 2014-03-07 18:52:10 · 568 阅读 · 0 评论 -
cmake编译安装mysql
从官网下载了一个最新版的mysql源码包,准备安装一下,可是解压出来,却发现无法./configure。后来才知道mysql现在用cmake了。这里贴一下cmake编译安装mysql的方法:#groupadd mysql#useradd -g mysql mysql -s /sbin/nologin#yum -y install cmake#wget mys转载 2014-02-26 15:59:22 · 615 阅读 · 0 评论 -
mysql性能优化-慢查询分析、优化索引和配置
目录一、优化概述二、查询与索引优化分析1性能瓶颈定位Show命令慢查询日志explain分析查询profiling分析查询 2索引及查询优化三、配置优化1) max_connections2) back_log3) interactive_timeout4)转载 2013-10-10 14:45:31 · 624 阅读 · 0 评论 -
mysql 查看索引
查看索引mysql> show index from tblname;mysql> show keys from tblname;· Table表的名称。· Non_unique如果索引不能包括重复词,则为0。如果可以,则为1。· Key_name索引的名称。· Seq_in_index索引中的列序列号,从1开始。转载 2013-10-10 15:29:39 · 570 阅读 · 0 评论 -
MySQL性能优化的最佳20+条经验
今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显。关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我们程序员需要去关注的事情。当我们去设计数据库表结构,对操作数据库时(尤其是查表时的SQL语句),我们都需要注意数据操作的性能。这里,我们不会讲过多的SQL语句的优化,而只是针对MySQL这一Web应用最多的数据库。希望下面的这些优化技巧对你有用。1. 为转载 2013-10-10 16:33:55 · 724 阅读 · 0 评论 -
解决mysql 10048 错误
Error: Can't connect to MySQL server on 'localhost' (10048)以上错误分几种情况说一下(首先您要确保您的服务器及服务器环境是正常的,装一个新论坛试一下就知道了):1. 如果您是虚拟空间,出现以上错误,有可能是限制而引起,只有找您买虚拟空间的服务商解决,或是更换更好的空间 2. 有可能是攻击,攻击会导致服务器内存被占完,转载 2013-10-08 15:42:38 · 1853 阅读 · 2 评论 -
打开MySQL的慢查询记录
打开MySQL慢查询MySQL慢查询记录日志对于跟踪PHP+MySQL体系下的MySQL负载调优问题很有用处,比如安装了很多Discuz!插件的用户,这样可以大概排查出那些插件有代码问题。其实启用MySQL的慢查询日志很简单,只需要在MySQL的配置文件里添加log-slow-queries和long_query_time两个参数即可。今天有个朋友问我,就顺带记录上来。更多的MySQL转载 2013-09-16 08:53:00 · 619 阅读 · 0 评论 -
MySQL的mysqldump工具的基本用法
导出要用到MySQL的mysqldump工具,基本用法是: shell> mysqldump [OPTIONS] database [tables] 如果你不给定任何表,整个数据库将被导出。 通过执行mysqldump --help,你能得到你mysqldump的版本支持的选项表。 注意,如果你运行mysqldump没有--quick或--opt选项转载 2013-09-14 07:26:53 · 606 阅读 · 0 评论