介绍在单节点的数据库中可以使用数据库自带的自增主键.而在分库分表的情况下,数据库自增主键无法保证自增主键的全局唯一.在使用全局主键可以使用mycat自带的方式如使用本地的数据库本地自增主键id.当向mycat插入一条数据被分配到节点1.在第一条节点会出现id = 1.再次向mycat插入一条数据被分配到节点2.因为节点2也没有数据,则在节点2同样会生成id=1的数据.这样就导致了主键重复的现...
环境安装jdk# 安装jdk1.7以上 yum search jdk | grep openjdk yum install -y java-1.8.0-openjdk-devel.x86_64 # 配置javahome vi /etc/profile # 添加 export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.282.b08-1...
Percona Server安装地址# 官网 https://www.percona.com # 版本选择 https://www.percona.com/downloads/percona-release/安装# 安装包源 - 可以通过上述地址选择最新版本的包源 yum install -y https://downloads.percona.com/downloads/percon...
介绍 当数据库压力变大,在繁忙操作的时候数据库的性能会越来越低,为了分担数据库的读负载可以采用主从复制,读写分离的方式来解决.随着数据的增长,单一的数据库并无法负担写的负载,可以通过分库分表来解决. 在数据库中并不是所有的表都会频繁的写入数据,也就是不会所有的表都进行分区.对于不用分片的表可以在每个分片中都存储一份相同的数据,前提是该表的数据量不大...
介绍 索引减少存储引擎扫描数据的数量,索引文件大小通常小于数据文件大小.因为b-tree是按健值顺序存放,所以在进行排序避免使用了临时表来进行排序的磁盘消耗,提高了mysql的处理能力. 索引并不是越多越好.随着索引的增加数据库也会增加写的操作,在对数据更新的额同时也会对索引进行更新维护(即修改数据时间变长).在Innodb中使用了插入缓存,即多次...
大批量数据插入逐条插入// 采用原生逐条插入 $mysql = mysqli_connect('127.0.0.1', 'root', 'root', 'test'); if (!$mysql) { echo 'mysql connect error ...' . PHP_EOL; } $start_time = time(); // 1百万数据插入 for ($i = 0; $i ...
介绍 对于有性能问题的SQL除了通过分析慢查询日志还可以使用Explain实时的对执行语句进行分析.需要注意的是Explain只能解释select操作,统计信息并非都是精确值.使用MySQL [angel]> explain select * from angel_users \G; *************************** 1. row *****...
配置配置参数说明show_query_log启动慢查询日志show_query_log_file慢查询日志存储路径log_query_time记录超过执行时间的SQLlog_queries_not_using_indexes记录未使用索引的SQL使用-- 查询满查询配置 MySQL [(none)]> show variables like '%query%'; +----------...
介绍 基准测试是指通过设计科学的测试方法、测试工具和测试系统,实现对一类测试对象的某项性能指标进行定量的和可对比的测试.需要注意基准测试不等于压力测试.特点模拟负载,输出相关信息.可指定自动生成查询语句.参数参数说明--host数据库主机地址--user数据库用户--password数据库密码--port数据库端口号--auto-generate-sql由系统自定生成s...
介绍 Mysql优化可以分为三个层面,即设计层面,架构层面,SQL语句来进行优化.优化原则数据库在设计的时候严格按照范式设计,特殊情况下可反范式设计.字段尽可能的使用小的数据类型.开启慢查询,分析比较慢的SQL语句,记录下进行分析和处理.使用explainSQL语句进行分,分析比较慢改写SQL语句或者针对需要的字段适当的加上索引.应用层面进行优化,例如加上缓存(memc...