Mysql技术

[置顶] Aiiphp框架测试版发布,欢迎测试!

[置顶] Linux常用运维命令和linux常用管理操作命令(整理)

[置顶] Linux/Window服务器安全配置等常用软件下载列表

利用mysqlnd_ms实现mysql读写分离

引用Laruence博文:

从PHP5.3开始, MySQL team专为PHP开发的MySQL连接库mysqlnd(MySQL native driver for PHP)终于和PHP一起发布了. mysqlnd的主要目的是为了解决长久以来mysql和php的license的问题. 它将作为PHP的源代码的一部分和PHP一起发布.

今天, 我要为大家介绍一个mysqlnd的插件:mysqlnd_ms, 这个插件是由mysqlnd的开发者Andrey Hristov,Ulf Wendel和johannes一起开发的, 目前发布在PECL: mysqlnd_ms

在这个扩展的介绍页面我们可以看到它的功能描述:

The replication and load balancing plugin is a plugin for the mysqlnd library. It can be used with PHP MySQL extensions (ext/mysql, ext/mysqli, PDO_MySQL). if they are compiled to use mysqlnd. The plugin inspects queries to do read-write splitting. Read-only queries are send to configured MySQL replication slave servers all other queries are redirected to the MySQL replication master server. Very little, if any, application changes required, dependent on the usage scenario required.

这个扩展, 主要实现了, 连接保持和切换, 负载均衡和读写分离等, 也就是说, 这个扩展会去分别PHP发给MySQL的query, 如果是”读”的query, 就会把query发送给从库(配置中指明), 并且支持负载均衡; 而如果是”写”的query, 就会把query发送给主库.

» 阅读全文

关键词: mysqlnd_ms , mysqlnd_ms使用 , mysqlnd_ms安装

MySQL查看数据库大小和表大小的方法

MySQL查看数据库大小和表大小的方法

其实很简单,就不多说了,基本上看得懂代码都明白

查看MySQL数据库大小

SELECT table_schema “Database Name”, 
sum( data_length + index_length ) / 1024 / 1024 
“Database Size in MB” FROM information_schema.TABLES GROUP BY table_schema;

查看MySQL表大小

» 阅读全文

mycli一个基于命令行的mysql连接客户端

mycli

是一个基于命令行的mysql连接客户端

A command line client for MySQL that can do auto-completion and syntax highlighting.

Completion

这个工具是python下工具,安装方法可以通过pip安装。

» 阅读全文

关键词: mycli使用 , mysql

简单方法实现mysql查询分组后获取结果集总数SQL语句

一般获取总的记录数一般是:

select count(1) as total from xxx where ..........

这没有问题,但是如果查询的条件有分组group by

那这个时候获取总数就有问题了,这样是获取每个分组的总数

解决办法:

select count(1) as total from ( select id from xxx where .... grouy by .....) as temp

这个方法简单,但是如果是大的数据集的话就可能影响性能。注意

关键词: 分组汇总

MySQL数据库开发的三十六条军规&&Mysql性能优化教程的文档

MySQL数据库开发的三十六条军规&&Mysql性能优化教程的文档

自己根据需要下载吧。


mysql数据库开发的三十六条军规_石展_完整.pdf (1.8 MB, 下载次数:1147, 上传时间:2014-12-07 20:16)
mysql性能优化教程.doc (148 KB, 下载次数:128, 上传时间:2014-12-07 20:16)

discuz X2.5表引擎MyISAM转换为InnoDB时pre_forum_post报错解决方法

几乎所有PHP+MySQL的开源产品中数据库都是采用MyISAM存储引擎,即使和交易相关的也不例 外,这应该是从查询性能以及安装环境考虑的。InnoDB是为处理巨大数据量时的最大性能设计,在数据量少并发小的情况下MySAM优于INNODB,但 是大数据量以及高并发写入等会导致MySIAM力不从心。

InnoDB有很多良好的特点,比如事务支持、存储 过程、视图、行级锁定等,在并发很多的情况下,InnoDB的表现会比MyISAM优越,所以有时会将一些产品的数据库存储引擎修改为InnoDB,修改 起来其实比较简单,只需要执行:ALTER TABLE `表名` ENGINE = InnoDB;即可,但是在discuz X2.5中表pre_forum_post在转换时会报错,提示#1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key,大意是自增字段必须定义成主键

» 阅读全文

关键词: pre_forum_post报错 , myisam转换为innodb

MySQL复制技术:异步复制延迟解决方案,多线程Mysql同步

mysql的复制之所以慢,主要是因为备库上的SQL线程是单线程顺序执行的。如果能够让其并行执行,那么就会快很多。

MySQL5.6增加了多线程(并行)复制以减少当前单线程复制的瓶颈,但是它是基于分库实现的,就是说一个线程只能对应该一个库。

还有就是自己实现一个SLAVE,模拟备库I/O线程,连接主库,读取二进制日志到本地,然后结合自己业务特点,表结构等,实现并行SQL更新,因为是针对自身业务,比如可以按表来分多线程,表里可以加上主键限制,保证事务的顺序执行。

» 阅读全文

关键词: mysql同步 , mysql

数据库SQL优化大总结之优化SQL语句提高系统性能

数据库sql优化大总结之优化SQL语句提高系统性能,只是做一个汇总,希望大家阅读之后,感觉好的话推荐给更多的人,让更多的人看到、纠正以及补充。

1.对查询进行优化,要尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。


2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:

select id from t where num is null

最好不要给数据库留NULL,尽可能的使用 NOT NULL填充数据库.

» 阅读全文

关键词: sql优化

Total: 271234Next ›