mysql
FMSCOTT
无论走哪条路都牢记最初的梦想,并坚持于最初梦想的方向…
展开
-
mysqlrow_num解决方案
select @a:=@a+1 as row_num, t.* from gen_table t,(select @a:=0) n ;原创 2019-11-12 11:19:25 · 1170 阅读 · 0 评论 -
mysql入门到高级书籍
入门SQL必知必会 第4版Effective MySQL之备份与恢复深入浅出MySQL 数据库开发 优化与管理维护 第2版初进阶数据库技术丛书·MySQL管理之道:性能调优、高可用与监控MySQL技术内幕:SQL编程高进阶高性能MySQL高可用MySQLMySQL技术内幕:InnoDB存储引擎(第2版)MySQL内核:InnoDB存储引擎(卷1)...原创 2019-10-31 16:18:16 · 632 阅读 · 0 评论 -
mysql导入数据创建函数没有成功,设置环境变量
set global log_bin_trust_function_creators=TRUE;原创 2019-08-17 18:28:46 · 293 阅读 · 0 评论 -
mysql设置不区分大小写
my.cnf中配置lower_case_table_names=1原创 2019-08-17 18:27:13 · 126 阅读 · 0 评论 -
mysql正式环境备份策略
1:备份脚本vi/mysqldata/bak/gzsp_database_barckup.sh/apps/mysql5725/bin/mysqldump -uroot -pXXXXXX --all-databases --flush-privileges --single-transaction --master-data=1 --flush-logs --triggers --r...原创 2019-08-16 15:32:28 · 201 阅读 · 0 评论 -
mysql优化-分页优化,延迟索引的案例
mysql中大数据量的表分页查询;按mysql的查询方式,会扫描前面的数据,而不是直接查询相关行的数据;mysql> explain select * from smth limit 90000,10;+----+-------------+-------+------------+------+---------------+------+---------+-...原创 2019-08-10 19:49:10 · 500 阅读 · 0 评论 -
mysql优化-聚簇索引,索引覆盖的使用案例
表smth中有10000行数据,有两个3000长度的字段;select idfrom smth order by id ;很慢select id fromsmth order by id,ver;比较快原因?createtable smth(id int(11) not null default 0,ver int(11) ...原创 2019-08-10 19:08:46 · 333 阅读 · 0 评论 -
mysql的优化-系统状态查看-定位问题,分析sql,索引(2)
通过trace分析sql1打开trace 设置格式为jsonset optimizer_trace="enabled=on",end_markers_in_json=on;设置trace最大使用内存set optimizer_trace_max_mem_size=10000000;做trace的语句select * from complain limit 100000,...原创 2019-08-10 19:03:40 · 331 阅读 · 0 评论 -
mysql的优化-系统状态查看-定位问题,分析sql,索引(1)
系统开发的初期阶段注重功能实现,数据比较少,随着数据量的增加,性能问题会慢慢突显查询系统状态信息show [sesison |global ] status;mysqladmin extended-statusshow status like 'Com_%';mysql> show status like 'Com_%';+---------------------...原创 2019-08-10 18:23:51 · 267 阅读 · 0 评论 -
MySQL This function has none of DETERMINISTIC, NO SQL...错误1418 的原因分析及解决方法
MySQL开启bin-log后,调用存储过程或者函数以及触发器时,会出现错误号为1418的错误:ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL,or READS SQL DATA in its declaration and binary logging is enabled(you *might* wan...原创 2019-08-17 18:30:52 · 273 阅读 · 0 评论 -
myisam索引与innodb索引的区别
mysiam的主键索引,次索引都是执行物理行的位置innodbd的次索引指向的是对主键的引用原创 2019-08-18 15:52:13 · 127 阅读 · 0 评论 -
mysql多表关联更新实例,不需要重复关联
update stock_item d,stock_btk tset d.out_num=IF(d.out_num-t.STORENUM<0,0,d.out_num-t.STORENUM),d.ky_num=d.ky_num+t.STORENUM,d.sj_num=d.sj_num+t.STORENUM,d.mss_ck_num=IF(d.mss_ck_num-t.STOREN...原创 2019-08-23 14:15:30 · 274 阅读 · 0 评论 -
mysql快速导入数据
mysql -hXX.XX.XX.XX-uroot -pXXXset autocommit=0;use XX;source F:\bproject.sqlcommit;原创 2019-08-27 14:57:56 · 225 阅读 · 0 评论 -
mysql优化分页查询
一般在mysql的分页查询中,通过参加覆盖索引能够比较好的提交性能;mysql中 使用limit 10000,10 返回的结果是10001到 10010行记录;前面的10000行记录会被扫描,而不被使用,查询和排序的代价比较高;思路:在索引上完成排序分页,然后根据主键回表查询需要的行内容;mysql> explain select id from material_d...原创 2019-08-27 15:23:35 · 289 阅读 · 0 评论 -
mysql优化-使用sql提示
sql提示是优化数据库的值中手段;就是加入一些人为的提示要达到优化的目的;原始的执行计划:mysql> explain select count(1) from material_data;+----+-------------+---------------+------------+-------+---------------+----------+---------+...原创 2019-08-27 15:45:12 · 221 阅读 · 0 评论 -
mysql优化-数据库对象优化
A 通过拆分提高表的访问效率1垂直拆分,把主码放一个表和一些列放一个表,把主码和另外的一些列放一个表;2水平拆分,按规则把部分行数据放到多个个独立的表中; 表很大,减少单表数量,索引数量,降低索引的层数 数据独立,按日期拆分 需要把数据放到多个介质上面B反范式设计 数据库设计的规范化程度越高,数据表质检的连接操作月频繁,表之间的连接操作往往性能比较低;...原创 2019-08-27 16:12:57 · 162 阅读 · 0 评论 -
mysql优化-索引的长度和区分度
索引长度与区分度以material_data的表为例,这个表中有多大45万的数据;对matertial_name的字段建立索引;以matertial_name字段建模普通索引,mysql> alter table material_data add index idx_material_name(material_name);Query OK, 0 rows...原创 2019-09-04 12:32:31 · 450 阅读 · 0 评论 -
mysql主要后台线程介绍说明
线程名称 说明 master thread 主要负责将合并也脏缓存页刷到数据文件,执行purge操作,触发检查点,合并插入缓冲区等; insert buffer thread 主要负责插入缓冲区的合并操作; read thread 负责数据库读取操作,可以配置多个读线程; write thread 负责数据库的写操作,可以配置多个写线程; l...原创 2019-09-06 10:48:28 · 318 阅读 · 0 评论 -
MYSQL内存管理及优化
MYSQL内存管理及优化内存是影响数据库性能的主要资源,也是mysql性能优化的一个重要方面;内存优化的原则将尽量多的内存分配给mysql做缓存,但是要给操作系统和其他程序的运行预留足够的内存,否则产生swap页交换,将严重影响系统性能;myisam的数据文件读取以来操作系统自身的io缓存,如果有myisam的表,就要预留更多的内存给操作系统做io缓存;排序区,连接区等缓存是分配给每个...原创 2019-09-06 14:46:13 · 771 阅读 · 0 评论 -
MySQL索引背后的数据结构及算法原理
本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于BTree索引,因为这是平常使用MySQL时主要打交道的索引,至于哈希索引和全文索引本文暂不讨论。文章主要内容分为三个部分。第一部分主...转载 2019-08-10 14:28:43 · 158 阅读 · 0 评论 -
mysql索引设计原则
1:最左前缀原则2:最少原则(一个索引能支持多个sql,一张表控制在5个以内)3:选择性好的列靠前原则4:频繁更新的列尽量少放在索引里5:多使用聚簇索引+索引覆盖原则...原创 2019-08-13 21:29:42 · 173 阅读 · 0 评论 -
聚簇索引概念(Myisam与Innodb索引的区别)
myisam的主索引和次索引都指向物理行,下面来进行讲解innodb的主键下存储该行的数据,此索引指向对主键的引用myisam的索引存储图如下,可以看出,无论是id还是cat_id,下面都存储有执行物理地址的值。通过主键索引或者次索引来查询数据的时候,都是先查找到物理位置,然后再到物理位置上去寻找数据。innodb的索引存储图如下,我们会发现,主键索引下面直接存储有数据,而次索引下...原创 2019-08-18 16:05:56 · 243 阅读 · 0 评论 -
mysql乱码思路
解决mysql乱码的思路就是,在各个环节保持字符集编码一致;1数据库的配置文件2创建数据库的配置3创建表的配置4:linux系统的字符集配置5:set names utf8 设置命令行中的字符集,并设置工具的默认字符集my.cnf配置[client]default-character-set = utf8[mysql]auto-rehash...原创 2019-07-19 14:21:53 · 103 阅读 · 0 评论 -
生产环境mysql全库备份语句实例
myisam备份mysqldump --user=root --all-databases --flush-priovileges --lock-all-tables --master-data=1 --flush-logs --triggers --routiones --events --hex-blob > /opt/full_dump_bak.sqlinnod...原创 2019-07-19 14:17:10 · 321 阅读 · 0 评论 -
mysql官方文档
https://dev.mysql.com/doc/原创 2019-07-19 10:24:34 · 580 阅读 · 0 评论 -
mysqldump - 数据库备份程序-文档来自官方
所述的mysqldump客户实用程序执行逻辑备份,产生一组能够被执行以再现原始数据库对象定义和表数据的SQL语句。它转储一个或多个MySQL数据库以备份或传输到另一个SQL服务器。所述的mysqldump命令也可以生成CSV输出,其他分隔符的文本或XML格式。 性能和可伸缩性注意事项 调用语法 选项语法 - 按字母顺序排列 连接选项 选项 - 文件...原创 2019-07-19 10:12:47 · 352 阅读 · 0 评论 -
大数据量 GBK 表 转 UFT8编码
解决问题的思路:导出表结构,表数据,修改表结构中的字符编码设置,重新导入数据1:导出表结构mysqldump -d -uroot -proot testDb > /opt/bak/testDb_f.sql2:导出表数据mysqldump --default-character-set=utf8 -t -uroot -proot testDb >/opt/bak/testD...原创 2019-07-16 17:12:44 · 171 阅读 · 0 评论 -
mysql授权命令演示
1:创建数据库CREATE DATABASE testDb CHARACTER SET utf8 COLLATE utf8_general_ci;2:创建用户并授权grant all on testDb.* to 'test_user'@'%' identified by 'test_user';3:刷新权限flush privileges;4:查看授权show ...原创 2019-07-16 15:03:47 · 113 阅读 · 0 评论 -
mysql数据库灾难恢复计划
恢复数据的策略,思路说明:1、数据库具有全备,同步到其他服务器2、开启bin-log ,通过同步工具每分钟同步bin-log到备份数据库这样可以做到即便是丢失数据能控制在一分钟之内这里不如果是机器坏掉,直接通过全备+bin-log 在备用服务器恢复;如果机器没有坏掉,可以通过进入系统去掉全量的bin-log 操作记录:1:创建数据库 create table stu...原创 2019-07-18 16:20:46 · 621 阅读 · 0 评论 -
mysql主从复制实践
1:主库打开 bin-log、 设置server-id2:添加账号允许从库进行同步主库授权GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%' IDENTIFIED BY 'slavepass';3:主机备份,从库还原备份数据mysqldump --user=root -proot --all-databases --flush-privile...原创 2019-07-18 15:59:14 · 126 阅读 · 0 评论 -
mysqlbinlog的使用--来自官方文档
服务器的二进制日志由包含“事件”的文件组成,这些事件描述了对数据库内容的修改。服务器以二进制格式写入这些文件。要以文本格式显示其内容,请使用mysqlbinlog实用程序。您还可以使用mysqlbinlog在复制设置中显示从服务器写入的中继日志文件的内容,因为中继日志的格式与二进制日志相同。第5.4.4节“二进制日志”和第17.2.2节“复制中继和状态日志”中将进一步讨论二进制日志和中继...原创 2019-07-19 14:37:32 · 628 阅读 · 0 评论 -
Mysql 5.6.36 单实例安装-编译的方式
Mysql 5.6.36 单实例安装#一、安装依赖包 yum install ncurses-devel libaio-devel -y rpm -qa ncurses-devel libaio-develyum install cmake -yrpm -qa cmake#二、建立mysql用户 安装使用useradd -s /sbin/nologin -M m...转载 2019-07-24 14:26:48 · 183 阅读 · 0 评论 -
MySQL优化之BTree索引使用规则
MySQL优化之BTree索引使用规则从一道题开始分析:假设某个表有一个联合索引(c1,c2,c3,c4)一下——只能使用该联合索引的c1,c2,c3部分A where c1=x and c2=x and c4>x and c3=xB where c1=x and c2=x and c4=x order by c3C where c1=x and c4= x group by ...转载 2019-08-08 22:17:38 · 188 阅读 · 0 评论 -
mysql的优化思路
数据库的优化是一个大而逛之的概论,我们不能以上来就说该怎么优化,而是需要确认数据库的具体问题;1:观察数据库是否有周期性的性能变化,故障或者波动如果存在是否是高峰的访问,缓存奔溃引起加缓存并更改缓存失效的策略2:用show processlist 或者开启慢查询,观察有问题的sqlproiling,expalin 分析生气了语句优化方向:表的关联查询过多,设计缺陷索引优化s...原创 2019-08-08 21:26:25 · 273 阅读 · 0 评论 -
mysql开启slow_query_log 后,设定的long_query_time=10,但是日志中依然看见很多执行时间小于10秒的sql语句,什么原因?
mysql开启slow_query_log 后,设定的long_query_time=10,但是日志中依然看见很多执行时间小于10秒的sql语句,什么原因?1:mysql记录的慢查询有3种语句,有可能没有使用索引,以及DML语句。2:long_query_time是动态变量,可以在线设置,设置是基于session的,可能导致已有的会话没有生效,设置为global的话,如果链接没有断开也是不会...原创 2019-08-08 21:07:21 · 792 阅读 · 0 评论 -
mysql的master-slave的数据复制时,出现slave延迟的情况,大概有几种原因?
mysql的master-slave的数据复制时,出现slave延迟的情况,大概有几种原因?1: 主库的写入量过大,兵法写入过高,但不一定是性能瓶颈;2:网络出现波动,包括带宽跑满,网络延时加大,网络瞬断;3:slave硬件性能瓶颈,如 IO的负载过高;...原创 2019-08-08 21:02:55 · 417 阅读 · 0 评论 -
mysql主从复制原理
1:主服务器上发起一个mysql事务2:主服务器上使用一条或者多条sql语句。物理结构的真正实现依赖于存储引擎,一边会先记录到内存缓存中innodb的语句被记录到innodb事务日志中,myisam 直接写到表的数据文件中3:事务结束,主服务器的二进制日志文件记录所使用的dml语句的结果4:向事务的客户端返回一个指示,说明事务成功完成;5:从服务器检查到在主服务器...原创 2019-08-02 14:35:38 · 130 阅读 · 0 评论 -
设置mysql安全删除、更新,必须带条件
show variables like 'sql_safe_updates';set GLOBAL sql_safe_updates='ON';set session sql_safe_updates='ON';原创 2019-08-01 15:21:32 · 694 阅读 · 0 评论 -
mysql二进制文件方式安装
1:从华为云镜像网站下载wget --no-check-certificate https://mirrors.huaweicloud.com/mysql/Downloads/MySQL-5.7/mysql-5.7.26-linux-glibc2.12-i686.tar.gz2:安装依赖yum search libaioyum install libaio3:添加用户组groupadd...原创 2019-07-23 15:25:24 · 381 阅读 · 0 评论 -
CentOS 6.8 编译安装MySQL5.5.32 (二 多实例)-转载
5,添加多实例目录[root@db01 application]# mkdir -p /data/{3306,3307}/data[root@db01 application]# tree /data//data/├── 3306 │ └── data └── 3307 └── data,6,上传多实例配置文件[root@db01 /]#...转载 2019-07-24 14:32:14 · 232 阅读 · 0 评论