MySQL
OOC_ZC
OOC
展开
-
Ubuntu下Mysql 5.7中文插入失败的问题,Incorrect string value
插入中文后,出现Incorrect string value…的错误。 如上图所示 输入show variables like 'character%';查看Mysql当前编码格式。 这里除了character_set_filesystem,character_sets_dir其他都为utf8. 所以修改Mysql的配置文件,Linux下应修改my.cnf 我是用apt-get安装的M原创 2017-01-10 14:50:22 · 3835 阅读 · 1 评论 -
MySQL 数据库的文件
。原创 2019-06-27 23:09:02 · 415 阅读 · 0 评论 -
InnoDB 存储引擎的整体设计
一、概述InnoDB 是事务安全的MySQL存储引擎,其特点是行锁设计、支持MVVC、支持外键、提供一致性非锁定读。二、InnoDB 体系架构2.1 后台线程InnoDB 存储引擎是多线程的模型,后台有多个不同的线程负责处理不同的任务。2.1.1 Master ThreadMaster Thread 是一个非常核心的后台线程,负责将缓冲池中的数据异步刷新到磁盘,保证数据的一致性,包括脏...原创 2019-06-26 23:22:54 · 290 阅读 · 0 评论 -
MySQL 扩展
一、概述MySQL 水平拓展的策略分为三个部分:复制拆分数据分片(sharding)二、复制最简单也最常见的向外扩展的方法是通过复制将数据分发到多个服务器上,然后将备库用于读查询。这种技术对于以读为主的应用很有效,它也有一些缺点,例如重复缓存等等。三、按功能拆分按功能拆分,每个节点只包含特定应用所需要的数据,各个部分无须共享数据,可以按功能区域进行划分。如果有数据交叉的需求,也...原创 2019-07-02 00:19:11 · 406 阅读 · 0 评论 -
InnoDB 存储引擎的索引
一、InnoDB 索引分类索引是在存储引擎层实现的,而不是在服务器层实现的,所以不同存储引擎具有不同的索引类型和实现。如果索引太多,应用程序的性能可能会受到影响。而索引太少,也会对查询性能产生影响。InnoDB 支持三种索引:B+树索引、哈希索引、全文索引。一般机械硬盘每秒至少可以做100次IO,每次约需要0.01秒。可以使用EXPLAIN分析SQL语句的执行情况。B树和B+树的对比...原创 2019-05-11 12:10:07 · 523 阅读 · 0 评论 -
MySQL 中常见的存储引擎
存储引擎特别注意的是,存储引擎是基于表的,而不是数据库。1. InnoDB是 MySQL 默认的事务型存储引擎,它被设计用来处理大量的短期事务,只有在需要它不支持的特性时,才考虑使用其它存储引擎。实现了四个标准的隔离级别,默认级别是可重复读(REPEATABLE READ)。在可重复读隔离级别下,通过 间隙锁(Next-Key Locking)防止幻影读。主索引是聚簇索引,在索引中保存...原创 2019-04-19 14:37:02 · 313 阅读 · 0 评论 -
B树和B+树的对比
一、B树4阶指每个节点最多有4个子树。从查找效率考虑一般要求B树的阶数m >= 3。二、B+树-> B+树平衡三、B+树和B树的区别有k个子树的中间节点包含有k个元素(B树中是k-1个元素),每个元素不保存数据,只用来索引,所有数据都保存在叶子节点。所有的叶子结点中包含了全部元素的信息,及指向含这些元素记录的指针,且叶子结点本身依关键字的大小自小而大顺序链接(...原创 2019-04-09 15:44:13 · 399 阅读 · 0 评论 -
SQL 语句进阶
MySQL 的数据类型SELECT prod_name FROM products LIMIT 5,4; // 返回从5行开始的4行,即5~8行。(从0行开始)SELECT prod_id, prod_name FROM products ORDER BY prod_id DESC, prod_name LIMIT 3;// 按照 prod_id 降序排列,如果 prod_id ...原创 2019-04-08 17:05:55 · 446 阅读 · 0 评论 -
MySQL 基础
一、B+ Tree 原理原创 2019-04-17 23:36:14 · 250 阅读 · 0 评论 -
数据库事务及实现
一、事务事务指的是满足 ACID 特性的一组操作,可以通过 Commit 提交一个事务,也可以使用 Rollback 进行回滚。MySQL 默认采用自动提交模式。也就是说,如果不显式使用START TRANSACTION语句来开始一个事务,那么每个查询都会被当做一个事务自动提交。2. ACID1. 原子性(Atomicity)事务被视为不可分割的最小单元,事务的所有操作要么全部提交成功,...原创 2019-04-19 00:40:25 · 462 阅读 · 0 评论 -
MySQL 备份数据库
环境为Ubuntu 16.04,要对MySQL进行备份。 备份: mysqldump -u root -p database_name > database_backup.sql 然后输入密码,注意,database_name是要进行备份的数据库的名字,不是密码。恢复: mysql -u root -p database_test < database_backup.sql 注意:这里需要原创 2017-07-14 10:59:41 · 306 阅读 · 0 评论 -
处理软件包 mysql-server-5.7 (--configure)时出错
打开MySQL报错,Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'在网上找了各种方法,均无效,于是决定卸载重装MySQL。 运行了: sudo apt-get autoremove --purge mysql-server-5.0 sudo apt-get remove mysql原创 2017-06-13 19:54:08 · 7622 阅读 · 8 评论 -
Python 写入MySQL乱码
首先保证在终端下,MySQL的中文插入和显示都正常。 如有问题可参考Ubuntu下MySQL中文插入失败 我的问题是在终端下中文插入显示都正常,但使用Python操作MySQL插入中文时,插入的内容为乱码。#!/usr/bin/env python# -*- coding: utf-8 -*-import pymysqlconn = pymysql.connect(user='root', p原创 2017-07-12 00:10:01 · 598 阅读 · 0 评论 -
MySQL 复制
复制的工作原理复制是MySQL数据库提供的一种高可用高性能的解决方案,一般用来建立大型的应用。总体来说,replication的工作原理分为以下3个步骤:主服务器(master)把数据更改记录到二进制日志(binlog)中。从服务器(slave)把主服务器的二进制日志复制到自己的中继日志(relay log)中。从服务器重做中继日志中的日志,把更改应用到自己的数据库上,以达到数据的最终一...原创 2019-07-02 00:31:10 · 220 阅读 · 0 评论