mysql
小菜鸟czh
这个作者很懒,什么都没留下…
展开
-
mysql慢查询日志
慢日志查询作用慢日志查询的主要功能就是,记录sql语句中超过设定的时间阈值的查询语句。例如,一条查询sql语句,我们设置的阈值为1s,当这条查询语句的执行时间超过了1s,则将被写入到慢查询配置的日志中. 慢查询主要是为了我们做sql语句的优化功能.慢查询配置项说明登录mysql服务,使用如下命令mysql> show variables like '%query%'...转载 2019-10-23 17:09:45 · 179 阅读 · 0 评论 -
mysql远程链接不上,本地可以链接
1.添加一个用户grant all no *.* to 'user'@'%' identified by 'pwd';如果还是不行,有可能防火墙的问题查看防火墙是否开启了3306端口如果没有3306这个端口,就添加上去 vi /etc/sysconfig/iptables -A INPUT -m state –state NEW -m t原创 2015-06-19 11:10:13 · 787 阅读 · 0 评论 -
mysql 单例模式
require_once ('mysql_config.php'); class msyql_db{ static private $_instance; private $com; private function __construct($db_host,$name,$db_name,$db_pwd){ //外部不能直接实例化 $this->com=mysql原创 2015-05-21 09:41:33 · 1442 阅读 · 0 评论 -
mysql优化Analyze Table
Analyze TableMySQL 的Optimizer(优化元件)在优化SQL语句时,首先需要收集一些相关信息,其中就包括表的cardinality(可以翻译为“散列程度”),它表示某个索引对应的列包含多少个不同的值——如果cardinality大大少于数据的实际散列程度,那么索引就基本失效了。我们可以使用SHOW INDEX语句来查看索引的散列程度:SHOW INDEX转载 2015-05-20 14:52:35 · 564 阅读 · 0 评论 -
实例说明optimize table在优化MySQL时很重要
一,原始数据1,数据量mysql> select count(*) as total from ad_visit_history; +---------+ | total | +---------+ | 1187096 | //总共有118万多条数据 +---------+ 1 row in set (0.04 sec) 2,存放在硬盘中的表文件大小转载 2015-05-20 14:49:56 · 4450 阅读 · 0 评论 -
centos下yum快速安装lamp环境
用yum安装Apache,Mysql,PHP. 1.1安装Apache yum install httpd httpd-devel 安装完成后,用/etc/init.d/httpd start 启动apache 设为开机启动:chkconfig httpd on 1.2 安装mysql 1.2.1 yum inst原创 2015-05-06 14:51:25 · 813 阅读 · 0 评论 -
查询mysql总结和预处理
一、连接到mysql: $dbc = mysqli_connect(host,user,password,databasename);等价于:$dbc = mysqli_connect(host,user,pwd);mysqli_select_db($dbc,db_name); 如果发生错误,可以调用:mysqli_connect_error() 返回错误信息,不带参数转载 2015-05-15 16:32:35 · 2857 阅读 · 0 评论 -
Mysql 数据库 优化利器 PROCEDURE ANALYSE
PROCEDURE ANALYSE 通过分析select查询结果对现有的表的每一列给出优化的建议。PROCEDURE ANALYSE的语法如下:SELECT … FROM … WHERE … PROCEDURE ANALYSE([max_elements,[max_memory]])max_elements (默认值256) analyze查找每一列不同值时所需关注的最大不同值的数量.转载 2015-04-10 14:31:51 · 1036 阅读 · 0 评论 -
浅谈MySQL查询缓存机制
缓存机制简单的说就是缓存sql文本及查询结果,如果运行相同的sql,服务器直接从缓存中取到结果,而不需要再去解析和执行sql。如果表更改了,那么使用这个表的所有缓冲查询将不再有效,查询缓存值的相关条目被清空。更改指的是表中任何数据或是结构的改变,包括INSERT、UPDATE、DELETE、TRUNCATE、ALTER TABLE、DROP TABLE或DROP DATABASE等,也包括那些映射转载 2015-04-09 11:34:00 · 573 阅读 · 0 评论 -
MySql数据主从同步配置
由于需要配置mysql的主从同步配置,现将配置过程记录下,已被以后不时之需MySql数据主从同步1.1. 同步介绍Mysql的 主从同步 是一个异步的复制过程,从一个 Master复制到另一个 Slave上。在 Master 与 Slave 之间的实现整个复制过程主要由三个线程来完成,其中两个线程(Sql线程和IO线程)在 Slave 端,另外一个线程(IO线程)在 M转载 2015-03-27 11:01:01 · 533 阅读 · 0 评论 -
mysql alter用法
1:删除列ALTER TABLE 【表名字】 DROP 【列名称】2:增加列ALTER TABLE 【表名字】 ADD 【列名称】 INT NOT NULL COMMENT '注释说明'3:修改列的类型信息ALTER TABLE 【表名字】 CHANGE 【列名称】【新列名称(这里可以用和原来列同名即可)】 BIGINT NOT NULL COMMENT '注释说明'4转载 2015-03-25 17:07:59 · 547 阅读 · 0 评论 -
mysql 触发器
触发器(trigger):监视某种情况,并触发某种操作。触发器创建语法四要素:1.监视地点(table) 2.监视事件(insert/update/delete) 3.触发时间(after/before) 4.触发事件(insert/update/delete)语法:create trigger triggerNameafter/before insert/update/delet...转载 2015-12-09 23:02:08 · 471 阅读 · 0 评论 -
centos 安装mysql5.6
一、编译安装MySQL前的准备工作 安装编译源码所需的工具和库yum install gcc gcc-c++ ncurses-devel perl 安装cmake,从http://www.cmake.org下载源码并编译安装wget http://www.cmake.org/files/v2.8/cmake-2.8.10.2.tar.gz tar -xzv转载 2016-07-27 12:10:54 · 392 阅读 · 0 评论 -
MySQL基准测试和sysbench工具
前言作为一名后台开发,对数据库进行基准测试,以掌握数据库的性能情况是非常必要的。本文介绍了MySQL基准测试的基本概念,以及使用sysbench对MySQL进行基准测试的详细方法。一、基准测试简介1、什么是基准测试数据库的基准测试是对数据库的性能指标进行定量的、可复现的、可对比的测试。基准测试与压力测试基准测试可以理解为针对系统的一种压力测试。但基准测试不关心业务逻辑,更加...转载 2019-07-25 17:50:56 · 207 阅读 · 0 评论 -
mysql数据备份
mysqldump备份1、备份命令格式:mysqldump -h主机名 -P端口 -u用户名 -p密码 --database 数据库名 > 文件名.sql例如: mysqldump -h 192.168.1.100 -p 3306 -uroot -ppassword --database cmdb > /data/backup/cmdb.sql...转载 2019-07-18 10:01:01 · 123 阅读 · 0 评论 -
事务的隔离级别和mysql事务隔离级别修改
A事务做了操作没有提交对B事务来说就等于没做获取的都是之前的数据但是在A事务中查询的话查到的都是操作之后的数据没有提交的数据只有自己看得到,并没有update到数据库。查看InnoDB存储引擎 系统级的隔离级别 和 会话级的隔离级别:mysql> select @@global.tx_isolation,@@tx_isolation;+------...转载 2019-07-04 11:38:06 · 240 阅读 · 0 评论 -
mysql事务提交过程
MySQL作为一种关系型数据库,已被广泛应用到互联网中的诸多项目中。今天我们来讨论下事务的提交过程。 MySQL体系结构由于mysql插件式存储架构,导致开启binlog后,事务提交实质是二阶段提交,通过两阶段提交,来保证存储引擎和二进制日志的一致。本文仅讨论binlo...转载 2019-07-04 11:20:31 · 849 阅读 · 0 评论 -
Windows安装PHP MongoDB扩展
本文将讲述一下在Wamp环境下安装MongoDB扩展的过程,大家可以略作参考 安装环境系统环境:Windows 7 64位Apache版本:2.4.9PHP版本:5.5.12MongoDB版本:3.2.6Wamp版本:wamp 2.5 64位 在windows下安装mongodb的扩展比Linux环境稍微复杂点安装步骤一、确定php的compil转载 2016-08-31 14:03:42 · 1054 阅读 · 0 评论 -
CentOS 下为已经编译好的php环境添加mysqli扩展
添加扩展的基本步骤:1、进入php源代码目录:# cd /tmp/php-5.2.14/2、再进入要添加的mysqli扩展源码目录:# cd ext/mysqli/2、调用已经编译好的php里面的phpize:# /usr/local/php/bin/phpize (php安装路径下)3、然后configure:# ./configure --with-php-config=/转载 2016-08-17 17:43:08 · 2538 阅读 · 0 评论 -
MySQL存储引擎中的MyISAM和InnoDB区别详解
MyISAM是MySQL的默认数据库引擎(5.5版之前),由早期的ISAM(Indexed Sequential Access Method:有索引的顺序访问方法)所改良。虽然性能极佳,但却有一个缺点:不支持事务处理(transaction)。不过,在这几年的发展下,MySQL也导入了InnoDB(另一种数据库引擎),以强化参考完整性与并发违规处理机制,后来就逐渐取代MyISAM。InnoDB转载 2016-07-21 17:27:24 · 271 阅读 · 0 评论 -
随机获取Mysql数据表的一条或多条记录
select * from users order by rand() LIMIT 1 执行该sql语句,老半天没有反应,最后被迫手动停止执行,怎个伤人了得啊!后来我查了一下MYSQL手册,里面针对RAND()的提示大概意思就是,在ORDER BY从句里面不能使用RAND()函数,因为这样会导致数据列被多次扫描,导致效率相当相当的低!效率不行,切忌使用! SELECT * FROM u...原创 2016-07-18 17:12:49 · 377 阅读 · 0 评论 -
Mysql索引会失效的几种情况分析
在做项目的过程中,难免会遇到明明给mysql建立了索引,可是查询还是很缓慢的情况出现,下面我们来具体分析下这种情况出现的原因及解决方法:索引并不是时时都会生效的,比如以下几种情况,将导致索引失效: 1.如果条件中有or,即使其中有条件带索引也不会使用(这也是为什么尽量少用or的原因) 注意:要想使用or,又想让索引生效,只能将or条件中的每个列都加上索引 2.转载 2015-04-08 11:25:22 · 520 阅读 · 0 评论 -
MySQL 性能优化的最佳20多条经验分享
今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显。关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我们程序员需要去关注的事情。当我们去设计数据库表结构,对操作数据库时(尤其是查表时的SQL语句),我们都需要注意数据操作的性能。这里,我们不会讲过多的SQL语句的优化,而只是针对MySQL这一Web应用最多的数据库。希望下面的这些优化技巧对你有用。1.转载 2015-04-08 09:54:54 · 546 阅读 · 0 评论 -
msyql left join on 后面多个条件
即使你认为自己已对 MySQL 的 LEFT JOIN 理解深刻,但我敢打赌,这篇文章肯定能让你学会点东西!ON 子句与 WHERE 子句的不同一种更好地理解带有 WHERE ... IS NULL 子句的复杂匹配条件的简单方法 Matching-Conditions 与 Where-conditions 的不同关于 “A LEFT JOIN B ON 条件表达式” 的一点提醒原创 2014-01-22 11:30:08 · 27906 阅读 · 0 评论 -
mysql触发器
CREATE TRIGGER语法CREATE TRIGGER trigger_name trigger_time trigger_event ON tbl_name FOR EACH ROW trigger_stmt 触发程序与命名为tbl_name的表相关。trigger_time是触发程序的动作时间。它可以是BEFORE或AFTER,以指明触发程序是在激活它的语句之原创 2014-01-07 16:45:24 · 880 阅读 · 0 评论 -
mysql事物
//msyql 事物处理 $db->query("begin"); //开启事物 $sql_up="update `cutover` set audit_id='{$audit_id}',audit_type=3 where id='{$cut_id}'"; $result_up=$db->query($sql_up);原创 2013-12-31 16:56:23 · 829 阅读 · 0 评论 -
给用户设置访问数据库的权限
数据库名:test_db用户名:test密码 :123456授予的权限 增,删,改,查主机地址 172.1.1.1 //授权的sql语句 grant ALL on test_db.* to 'test'@'172.1.1.1' identified by '123456'; //可以只授权查看 grant select on test_db.* t原创 2013-07-31 11:04:43 · 2417 阅读 · 0 评论 -
pdo使用
PDO(PHP Data Object) 是PHP 5新出来的东西,在PHP 6都要出来的时候,PHP 6只默认使用PDO来处理数据库,将把所有的数据库扩展移到了PECL,那么默认就是没有了我们喜爱的php_mysql.dll之类的了,那怎么办捏,我们只有与时俱进了,我就小试了一把PDO。(本文只是入门级的,高手可以略过,呵呵)【PDO是啥】PDO是PHP 5新加入的一个重大功能,因为原创 2013-11-20 16:55:24 · 1646 阅读 · 0 评论 -
union 与 order by 合并使用
在SQL语句中,UNION关键字多用来将并列的多组查询结果(表)合并成一个结果(表),简单实例如下:SELECT [Id],[Name],[Comment] FROM [Product1]UNIONSELECT [Id],[Name],[Comment] FROM [Product2]上面的代码可以实现将从Product1和Product2两张表合并成一个表,如果您只是希望合并两张原创 2013-10-17 17:26:17 · 2426 阅读 · 0 评论 -
linux备份mysql数据库与恢复mysql备份数据
刚学的技术,保存一下 1. 在linux服务器上创建一个 msyql.sh文件 (随便定义) ,用来保存备份mysql数据的脚本2. 编辑mysql.sh文件 (自己之前写过的一个脚本) mysqldump -h172.25.252.62 -uroot -p123456 data_ua|gzip >data_ua.gz //mysqldump备份mysql原创 2013-08-27 12:00:27 · 3361 阅读 · 1 评论 -
sql里的having函数
HAVING 子句对 GROUP BY 子句设置条件的方式与 WHERE 和 SELECT 的交互方式类似。WHERE 搜索条件在进行分组操作之前应用;而 HAVING 搜索条件在进行分组操作之后应用。HAVING 语法与 WHERE 语法类似,但 HAVING 可以包含聚合函数。HAVING 子句可以引用选择列表中显示的任意项。 下面的示例按产品 ID 对 SalesOrderDetai转载 2014-03-12 13:48:20 · 2864 阅读 · 0 评论 -
msyql分表
一、 概述分表是个目前算是比较炒的比较流行的概念,特别是在大负载的情况下,分表是一个良好分散数据库压力的好方法。首先要了解为什么要分表,分表的好处是什么。我们先来大概了解以下一个数据库执行SQL的过程:接收到SQL --> 放入SQL执行队列--> 使用分析器分解SQL -->按照分析结果进行数据的提取或者修改 --> 返回处理结果当 然,这个流程图不一转载 2014-03-12 14:45:05 · 724 阅读 · 0 评论 -
mysql查询缓存配置和查看
Mysql 查询缓存 查询缓存的作用就是当查询接收到一个和之前同样的查询,服务器将会从查询缓存种检索结果,而不是再次分析和执行上次的查询。这样就大大提高了性能,节省时间。 1.配置查询缓存 修改配置文件,修改[mysqld]下的query_cache_size和query_cache_type(如果没有则添加)。其中query_cache_size表示缓存的大小,而query_cach转载 2015-04-23 15:27:38 · 9781 阅读 · 0 评论 -
mysql性能优化 explain用法详解
EXPLAIN用于SELECT语句中的每个表返回一行信息。表以它们在处理查询过程中将被MySQL读入的顺序被列出如果在select语句前放上关键词explain,mysql将解释它如何处理select,提供有关表如何联接和联接的次序。explain的每个输出行提供一个表的相关信息,并且每个行包括下面的列:1,id select识别符。这是select的查询序列号。2转载 2015-04-10 14:39:43 · 1424 阅读 · 0 评论 -
MySQL的语句执行顺序
MySQL的语句执行顺序MySQL的语句一共分为11步,如下图所标注的那样,最先执行的总是FROM操作,最后执行的是LIMIT操作。其中每一个操作都会产生一张虚拟的表,这个虚拟的表作为一个处理的输入,只是这些虚拟的表对用户来说是透明的,但是只有最后一个虚拟的表才会被作为结果返回。如果没有在语句中指定某一个子句,那么将会跳过相应的步骤。下面我们来具体分析一下查询处理的每一个阶段F转载 2014-12-08 11:09:47 · 546 阅读 · 0 评论 -
mysql 中时间和日期函数
一、MySQL 获得当前日期时间 函数1.1 获得当前日期+时间(date + time)函数:now()mysql> select now();+---------------------+| now() |+---------------------+| 2008-08-08 22:20:46 |+--------------------转载 2014-12-18 10:05:56 · 572 阅读 · 0 评论 -
mysql 时间处理
to_daysdate_add......这里是一个使用日期函数的例子。下面的查询选择所有 date_col 值在最后 30 天内的记录。mysql> SELECT something FROM tbl_name WHERE TO_DAYS(NOW()) - TO_DAYS(date_col) <= 30;DAYOFWEEK(date)原创 2014-12-18 10:03:23 · 825 阅读 · 0 评论 -
mysql中having的用法(和where的区别)
让我们先运行2个sql语句:1、SELECT * FROM `welcome` HAVING id >1 LIMIT 0 , 302、SELECT * FROM `welcome` WHERE id >1 LIMIT 0 , 30查看一下结果吧,怎么样?是不是查询到相同的结果。让我们再看2个sql语句:1、SELECT user, MAX(salary) FROM users转载 2014-12-03 11:20:19 · 8125 阅读 · 0 评论 -
mysql最大并发数设置
mysql 默认的最大并发连接为100,默认的连接数无法满足大量client 连接的请求.但是可以通过以下方式改变,使用root用户登录mysql 系统引用mysql > show variables like ’max_connections‘;+-----------------+-------+| Variable_name | Value |+-----转载 2014-12-01 10:49:30 · 6459 阅读 · 0 评论 -
MySQL索引的创建、删除和查看
1.索引作用 在索引列上,除了上面提到的有序查找之外,数据库利用各种各样的快速定位技术,能够大大提高查询效率。特别是当数据量非常大,查询涉及多个表时,使用索引往往能使查询速度加快成千上万倍。 例如,有3个未索引的表t1、t2、t3,分别只包含列c1、c2、c3,每个表分别含有1000行数据组成,指为1~1000的数值,查找对应值相等行的查询如下所示。SELECT c1,c2,c转载 2014-11-12 14:22:26 · 421 阅读 · 0 评论