Mysql

MySQL5.7之Json Column和Generated Column

MySQL5.7新增两种字段类型:Json和Generated,Generated型的产生和Json的关系密不可分,如果没有Generated类型,Json类型在强大,生产中可能也无法使用,因为Json不支持索引,但是如果要查询Json里的数据,没有索引就是全表扫描,在执行效率上肯定是不能用于生产环境的,但是有了Generated类型就不同了,Generated类型简单地说是一个虚拟字段,值是不可更新的,值来源其他字段或者字段间计算或是转化而来的,这种类型是可以创建索引,利用Generated的特性,就可以间接的给Json类型中的key创建索引,解决Json不能创建索引的问题。简而言之, Generated类型的产生,为Json类型在索引方面的问题提供了支持。JSON的值包含单个值、数组、元组、标注的Json格式等几种格式。…

    

利用Navicat工具实现MySQL数据库结构同步

Navicat 是一套快速、可靠并价格相宜的数据库管理工具,专为简化数据库的管理及降低系统管理成本而设。Navicat提供多达 7 种语言供客户选择,被公认为全球最受欢迎的数据库前端用户界面工具。
Navicat旗下有多个产品成员 ,可以用来对本机或远程的 MySQL、SQL Server、SQLite、OraclePostgreSQL 数据库进行管理及开发。因为文中介绍的是MySQL数据库,因此我们要用到的是Navicat旗下的Navicat For MySQL工具。Navicat For MySQL下载链接。 …

    

php phalcon框架数据库连接改为长连接后,插入性能极大提升

php phalcon框架数据库连接改为长连接后,压力测试插入性能极提升3倍多

<?php

// Create a connection with PDO options
$connection = new \Phalcon\Db\Adapter\Pdo\Mysql(
    [
        "host"     => "localhost",
        "username" => "root",
        "password" => "sigma",
        "dbname"   => "test_db",
        "options"  => [ //这里加上此附加参数
            PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'UTF8'",
            
                    

互联网公司为啥不使用mysql分区表?(一分钟系列)

缘起:有个朋友问我分区表在58的应用,我回答不出来,在我印象中,百度、58都没有听说有分区表相关的应用,业内进行一些技术交流的时候也更多的是自己分库分表,而不是使用分区表。于是去网上查了一下,并询问了58到家的DBA专家,将自己收到的信息沉淀下来,share给大伙。…

微信开源PhxSQL:高可用、强一致的MySQL集群

开源地址:https://github.com/tencent-wechat/phxsql

PhxSQL 是一个兼容 MySQL、服务高可用、数据强一致的关系型数据库集群。PhxSQL 以单 Master 多 Slave 方式部署,在集群内超过一半机器存活的情况下,可自身实现自动 Master 切换,且保证数据一致性。

PhxSQL 基于 Percona 5.6 开发。Percona 是 MySQL 的一个分支,功能和实现与 MySQL 基本一致。因此本文后续直接把 MySQL 作为讨论对象。

    

InnoDB行格式对text/blob大变长字段的影响

最近在排查现网Text与Blob类型,发现有不少,在《高性能MySQL(第3版)》看到对这两种变长数据类型的处理会涉及到在磁盘上创建临时表,性能开销比较大。于是把影响blob型数据存储方式了解了一下:row_format。

1. InnoDB的Antelop与Barracuda文件格式

Innodb存储引擎保存记录,是以行的形式存放的(与之对应的是像Google BigTable这种列数据库)。在InnoDB 1.0.x版本之前,InnoDB 存储引擎提供了 CompactRedundant 两种格式来存放行记录数据,这也是目前使用最多的一种格式。Redundant 格式是为兼容之前版本而保留的。…

    

MYSQL查询某字段中以逗号分隔的字符串的方法

首先我们建立一张带有逗号分隔的字符串。CREATE TABLE test(id int(6) NOT NULL AUTO_INCREMENT,PRIMARY KEY (id),pname VARCHAR(20) NOT NULL,pnum VARCHAR(50) NOT NULL);

然后插入带有逗号分隔的测试数据
INSERT INTO test(pname,pnum) VALUES('产品1','1,2,4');
INSERT INTO test(pname,pnum) VALUES('产品2','2,4,7');
INSERT INTO test(pname,pnum) VALUES('产品3','3,4');
INSERT INTO test(pname,pnum) VALUES('产品4','1,7,8,9');

INSERT INTO test(pname,pnum) VALUES('产品5','33,4');…