Welcome 微信登录

首页 / 数据库 / MySQL

MySQL 的 20+ 条最佳实践

MySQL 的 20+ 条最佳实践

数据库操作是当今 Web 应用程序中的主要瓶颈。 不仅是 DBA(数据库管理员)需要为各种性能问题操心,程序员为做出准确的结构化表,优化查询性能和编写更优代码,也要费尽心思。 在本文中,我列出了一些针对程序员的 MySQL 优化技术。在我们开始学习之前,我补充一点:你可以在 Envato Market 上找到大量的 MySQL 脚本和实用程序。1.优化查询的查询缓存大部分MySQL服务器都有查询缓存功能。这是提高性能的最有效的方法之一,这是由数据库引擎私下...
浅谈MySQL模糊查询中通配符的转义

浅谈MySQL模糊查询中通配符的转义

sql中经常用like进行模糊查询,而模糊查询就要用到百分号“%”,下划线“_”这些通配符,其中“%”匹配任意多个字符,“_”匹配单个字符。如果我们想要模糊查询带有通配符的字符串,如“60%”,“user_name”,就需要对通配符进行转义,有两种方式。如下:1、反斜杠是转义符,通过反斜杠来转义%,使其不再是通配符。这里第一个%是通配符,第二个%不是通配符。select percent from score where percent like "%0\%...
MySQL利用procedure analyse()函数优化表结构

MySQL利用procedure analyse()函数优化表结构

简介procedure analyse()函数是MySQL内置的对MySQL字段值进行统计分析后给出建议的字段类型。语法procesure analyse(max_elements,max_memory)max_elements指定每列非重复值的最大值,当超过这个值的时候,MySQL不会推荐enum类型。max_memoryanalyse()为每列找出所有非重复值所采用的最大内存大小。实战演练# 对t1表所有的列进行分析wing@3306>show ...
MySQL查询结果复制到新表的方法(更新、插入)

MySQL查询结果复制到新表的方法(更新、插入)

MySQL中可以将查询结果复制到另外的一张表中,复制的话通常有两种情况,一种是更新已有的数据,另一种是插入一条新记录。下面通过例子来说明。首先构建两个测试表。表t1:表t2:1、如果t2表中存在score值,将score更新到t1表中。方法如下:UPDATE t1,t2 SET t1.score = t2.score WHERE t1.id = t2.id AND t2.score IS NOT NULL这就是将查询结果作为条件更新另一张表,当然,t2也可...
SQL查询语句优化的实用方法总结

SQL查询语句优化的实用方法总结

查询语句的优化是SQL效率优化的一个方式,可以通过优化sql语句来尽量使用已有的索引,避免全表扫描,从而提高查询效率。最近在对项目中的一些sql进行优化,总结整理了一些方法。1、在表中建立索引,优先考虑where、group by使用到的字段。2、尽量避免使用select *,返回无用的字段会降低查询效率。如下:SELECT * FROM t优化方式:使用具体的字段代替*,只返回使用到的字段。3、尽量避免使用in 和not in,会导致数据库引擎放弃索引进...
详解MySQL数据库的安装与密码配置

详解MySQL数据库的安装与密码配置

MySQL是由MySQL AB公司开发,后由Oracle公司收购MySQL是一个关系型数据库管理系统分为社区版和企业版MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言, 由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,搭配 PHP 和 Apache 可组成良好的开发环境安装方式:安装方式MSI 安装和ZIP安装Typical:典型安装 建议使用Custom:自定义安装Complete:完全安装一.下载MySQL软件1.去or...
MYSQL每隔10分钟进行分组统计的实现方法

MYSQL每隔10分钟进行分组统计的实现方法

前言本文的内容主要是介绍了MYSQL每隔10分钟进行分组统计的实现方法,在画用户登录、操作情况在一天内的分布图时会非常有用,之前我只知道用「存储过程」实现的方法(虽然执行速度快,但真的是太不灵活了),后来学会了用高级点的「group by」方法来灵活实现类似功能。正文:-- time_str "2016-11-20 04:31:11"-- date_str 20161120select concat(left(date_format(time_str, "...
MySQL 四种事务隔离级别详解及对比

MySQL 四种事务隔离级别详解及对比

MySQL 四种事务隔离级别详解及对比按照SQL:1992 事务隔离级别,InnoDB默认是可重复读的(REPEATABLE READ)。MySQL/InnoDB 提供SQL标准所描述的所有四个事务隔离级别。你可以在命令行用--transaction-isolation选项,或在选项文件里,为所有连接设置默认隔离级别。例如,你可以在my.inf文件的[mysqld]节里类似如下设置该选项:transaction-isolation = {READ-UNCO...
MySQL 5.7.9 服务无法启动-“NET HELPMSG 3534”的解决方法

MySQL 5.7.9 服务无法启动-“NET HELPMSG 3534”的解决方法

安装过程参考自:MySQL 5.6 for Windows 解压缩版配置安装成功安装以后,启动MySQL,输入:net start mysql 提示:”MySQL 服务无法启动,服务没有报告任何错误,请键入 NET HELPMSG 3534 以获得更多的帮助。”查了下,在当前目录下输入:mysqld --initialize 还是出错,又查了下,原因是:mysqld --initialize-insecure自动生成无密码的root用户,mysqld --...
MySQL存储引擎中MyISAM和InnoDB区别详解

MySQL存储引擎中MyISAM和InnoDB区别详解

InnoDB和MyISAM是许多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,视具体应用而定。基本的差别为:MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持。MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持,而InnoDB提供事务支持以及外部键等高级数据库功能。 以下是一些细节和具体实现的差别: ◆1.InnoDB不支持FULLTEXT类型的索引。 ◆2.InnoDB 中不保存表的...
C#如何在海量数据下的高效读取写入MySQL

C#如何在海量数据下的高效读取写入MySQL

前提由于工作的原因,经常需要对海量数据进行处理,做的数据爬虫相关,动辄千万级别的数据,单表几十个G都是都是家常便饭。 主要开发语言是C#,数据库使用的是MySQL。最常见的操作便是 select 读取数据,然后在C#中对数据进行处理, 完毕后再插入数据库中。 简而言之就 select -> process -> insert三个步骤。 对于数据量小的情况下(百万级别 or 几百兆)可能最多1个小时就处理完了。但是对于千万级数据可能几天,甚至更多...
mysql缓冲和缓存设置详解

mysql缓冲和缓存设置详解

MySQL 可调节设置可以应用于整个 mysqld进程,也可以应用于单个客户机会话。服务器端的设置每个表都可以表示为磁盘上的一个文件,必须先打开,后读取。为了加快从文件中读取数据的过程,mysqld对这些打开文件进行了缓存,其最大数目由 /etc/mysqld.conf 中的table_cache 指定。清单 4给出了显示与打开表有关的活动的方式。清单 4. 显示打开表的活动mysql> SHOW STATUS LIKE "open%tables";...
详解如何使用DockerHub官方的MySQL镜像

详解如何使用DockerHub官方的MySQL镜像

前言最近一直在尝试以官方centos镜像为基础,制作基于centos的MySQL镜像。但是制作后发现镜像大小已经超过1.5G,这对于一般的Docker镜像来说太臃肿了。Docker Hub官方提供的mysql镜像才324MB。目前来说我还没有找到什么好的方法把我制作的镜像的体积减下来,所以就先使用官方的吧! docker pull mysql:5.7如何使用这个Docker镜像?1、启动一个Mysql Server容器(默认端口3306)docker ru...
mysql5.7安装教程(windows)

mysql5.7安装教程(windows)

mysql5.7安装配置方法,整理一份分享给大家下载mysql 5.7.msi安装双击mysql.msi,按照提示安装。安装之后需要注意的问题(重点)设置mysql环境环境变量(让mysql在cmd中的任何路径下就可以被调用)1、鼠标右击计算机,点击属性2、选择高级系统变量设置,点击环境变量3、在系统变量里面选择PATH,点击编辑4、在最后添加 ";C:Program FilesMySQLMySQL Server 5.7",(C:Program Files...
<< 11 12 13 14 15 16 17 18 19 20 >>