Welcome 微信登录

首页 / 数据库 / MySQL

关于MySQL 优化的100个的建议

关于MySQL 优化的100个的建议

MySQL是一个功能强大的开源数据库。随着越来越多的数据库驱动的应用程序,人们一直在推动MySQL发展到它的极限。这里是100条调节和优化MySQL安装的技巧。一些技巧是针对特定的安装环境的,但这些思路是通用的。我已经把他们分成几类,来帮助你掌握更多MySQL的调节和优化技巧。 MySQL 服务器硬件和操作系统调节: 1. 拥有足够的物理内存来把整个InnoDB文件加载到内存中——在内存中访问文件时的速度要比在硬盘中访问时快的多。 2. 不惜一切代价...
Mysql半同步复制原理及问题排查

Mysql半同步复制原理及问题排查

mysql半同步复制和异步复制的差别如上述架构图所示:在mysql异步复制的情况下,Mysql Master Server将自己的Binary Log通过复制线程传输出去以后,Mysql Master Sever就自动返回数据给客户端,而不管slave上是否接受到了这个二进制日志。在半同步复制的架构下,当master在将自己binlog发给slave上的时候,要确保slave已经接受到了这个二进制日志以后,才会返回数据给客户端。对比两种架构:异步复制对于用...
MySQL中的行级锁、表级锁、页级锁

MySQL中的行级锁、表级锁、页级锁

在计算机科学中,锁是在执行多线程时用于强行限制资源访问的同步机制,即用于在并发控制中保证对互斥要求的满足。在DBMS中,可以按照锁的粒度把数据库锁分为行级锁(INNODB引擎)、表级锁(MYISAM引擎)和页级锁(BDB引擎 )。一、行级锁行级锁是Mysql中锁定粒度最细的一种锁,表示只针对当前操作的行进行加锁。行级锁能大大减少数据库操作的冲突。其加锁粒度最小,但加锁的开销也最大。行级锁分为共享锁 和 排他锁。特点开销大,加锁慢;会出现死锁;锁定粒度最小,...
MySQL数据库三种常用存储引擎特性对比

MySQL数据库三种常用存储引擎特性对比

MySQL 的存储引擎可能是所有关系型数据库产品中最具有特色的了,不仅可以同时使用多种存储引擎,而且每种存储引擎和MySQL之间使用插件方式这种非常松的耦合关系。由于各存储引擎功能特性差异较大,这篇文章主要是介绍如何来选择合适的存储引擎来应对不同的业务场景。MyISAM特性不支持事务:MyISAM存储引擎不支持事务,所以对事务有要求的业务场景不能使用表级锁定:其锁定机制是表级索引,这虽然可以让锁定的实现成本很小但是也同时大大降低了其并发性能读写互相阻塞:不...
mysql版本5.5.x升级到5.6.x步骤分享

mysql版本5.5.x升级到5.6.x步骤分享

大概步骤是: 把配置文件添加:skip-grant-tables参数,把basedir升级成新版本,启动mysql,执行命令:mysql_upgrade升级一下字典信息,然后flush privileges;刷新授权表,注意:如果是使用共享表空间,最好是把数据导出来再导入新版,如果是使用独立表空间可以使用mysql_upgrade升级。如:1. shell > service mysqld stop #把实例停掉复制代码 代码如下:shell &g...
MySQL5.1忘记root密码的解决办法(亲测)

MySQL5.1忘记root密码的解决办法(亲测)

网上搜了很多方法,杂,重复度高。但随便选一个却不奏效。这里简单贴一个亲测的。相关阅读:忘记mysql数据库root用户密码重置方法[图文]参考后,我用的方法:#win cmd下net stop MySQL停止MySQL服务(可能服务名称不一样)>net stop MySQL#MySQL提供跳过访问控制的命令行参数,通过在命令行以此命令启动MySQL服务器:#safe_mysqld –skip-grant-tables&>mysqld –skip...
MySQL基于DOS命令行登录操作实例(图文说明) <font color=red>原创</font>

MySQL基于DOS命令行登录操作实例(图文说明) <font color=red>原创</font>

本文实例讲述了MySQL基于DOS命令行登录操作方法。分享给大家供大家参考,具体如下:常用的MySQL命令行登录语句如下:复制代码 代码如下:mysql -h localhost -u root -p123456其中:-h 表示服务器地址,可省略,默认表示本机服务器-u 表示登录用户,必选,可与用户名连在一起写,如:-uroot-p 表示数据库密码,必选,但这里可不输入密码(注意:命令行中-p与密码之间不能有空格)因此,上述语句可写成如下几种形式:mysq...
MySQL中distinct语句去查询重复记录及相关的性能讨论

MySQL中distinct语句去查询重复记录及相关的性能讨论

在 MySQL 查询中,可能会包含重复值。这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值。关键词 DISTINCT 用于返回唯一不同的值,就是去重啦。用法也很简单:SELECT DISTINCT * FROM tableNameDISTINCT 这个关键字来过滤掉多余的重复记录只保留一条。另外,如果要对某个字段去重,可以试下:SELECT *, COUNT(DISTINCT nowamagic) FROM table GROUP B...
MySQL中索引优化distinct语句及distinct的多字段操作

MySQL中索引优化distinct语句及distinct的多字段操作

MySQL通常使用GROUPBY(本质上是排序动作)完成DISTINCT操作,如果DISTINCT操作和ORDERBY操作组合使用,通常会用到临时表.这样会影响性能. 在一些情况下,MySQL可以使用索引优化DISTINCT操作,但需要活学活用.本文涉及一个不能利用索引完成DISTINCT操作的实例.实例1 使用索引优化DISTINCT操作create table m11 (a int, b int, c int, d int, primary key(a...
MySQL中distinct语句的基本原理及其与group by的比较

MySQL中distinct语句的基本原理及其与group by的比较

DISTINCT 实际上和 GROUP BY 操作的实现非常相似,只不过是在 GROUP BY 之后的每组中只取出一条记录而已。所以,DISTINCT 的实现和 GROUP BY 的实现也基本差不多,没有太大的区别。同样可以通过松散索引扫描或者是紧凑索引扫描来实现,当然,在无法仅仅使用索引即能完成 DISTINCT 的时候,MySQL 只能通过临时表来完成。但是,和 GROUP BY 有一点差别的是,DISTINCT 并不需要进行排序。也就是说,在仅仅只是...
MySQL中distinct与group by语句的一些比较及用法讲解

MySQL中distinct与group by语句的一些比较及用法讲解

在数据表中记录了用户验证时使用的书目,现在想取出所有书目,用DISTINCT和group by都取到了我想要的结果,但我发现返回结果排列不同,distinct会按数据存放顺序一条条显示,而group by会做个排序(一般是ASC)。 DISTINCT 实际上和 GROUP BY 操作的实现非常相似,只不过是在 GROUP BY 之后的每组中只取出一条记录而已。所以,DISTINCT 的实现和 GROUP BY 的实现也基本差不多,没有太大的区别,同样可以...
mysql 数据库死锁原因及解决办法

mysql 数据库死锁原因及解决办法

死锁(Deadlock)所谓死锁:是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。由于资源占用是互斥的,当某个进程提出申请资源后,使得有关进程在无外力协助下,永远分配不到必需的资源而无法继续运行,这就产生了一种特殊现象死锁。 一种情形,此时执行程序中两个或多个线程发生永久堵塞(等待),每个线程都在等待被其他线程占用并...
mysql数据库锁的产生原因及解决办法

mysql数据库锁的产生原因及解决办法

数据库和操作系统一样,是一个多用户使用的共享资源。当多个用户并发地存取数据 时,在数据库中就会产生多个事务同时存取同一数据的情况。若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性。加锁是实现数据库并 发控制的一个非常重要的技术。在实际应用中经常会遇到的与锁相关的异常情况,当两个事务需要一组有冲突的锁,而不能将事务继续下去的话,就会出现死锁,严 重影响应用的正常执行。在数据库中有两种基本的锁类型:排它锁(Exclusive Locks,...
<< 141 142 143 144 145 146 147 148 149 150 >>