深入浅出mysql ch19-20
来源:互联网 发布:易语言传世登陆器源码 编辑:程序博客网 时间:2024/05/01 22:55
在 MySQL中,可以使用函数PROCEDURE ANALYSE()对当前应用的表进行分析,该函数可以对数据表中列的数据类型 出优化建议
SELECT * FROM duck_custPROCEDURE ANALYSE()\G;
19.2 通过拆分提高表的访问效率
垂直拆分,水平拆分。都不好用。
19.3 逆规范化
对于查询较多的应用就需要根据实际情况运用逆规范化对数据进行设计,通过逆规范化来 高查询的性能。
反规范的好处是降低连接操作的需求、降低外码和索引的数目,还可能减少表的数目,相应带来的问题是可能出现数据的完整性问题。
ch20 锁
表级锁 table,行级锁 line,页面锁 page.
innodb: line, table
mysql> show status like 'table%';
+-----------------------+------------+
| Variable_name | Value |
+-----------------------+------------+
| Table_locks_immediate | 1999035971 |
| Table_locks_waited | 8547 |
+-----------------------+------------+
2 rows in set (0.01 sec)
MySQL 的表级锁有两种模式:表共享读锁(Table Read Lock)和表独占写锁(Table Write Lock)。
MyISAM存储引擎有一个系统变量concurrent_insert,专门用以控制其并发插入的行为,其值
分别可以为0、1或2。
InnoDB
InnoDB 与 MyISAM的最大不同有两点:一是支持事务(TRANSACTION);二是采用了行级锁。
+-------------------------------+-----------+
| Variable_name | Value |
+-------------------------------+-----------+
| Innodb_row_lock_current_waits | 0 |
| Innodb_row_lock_time | 236618376 |
| Innodb_row_lock_time_avg | 790 |
| Innodb_row_lock_time_max | 51952 |
| Innodb_row_lock_waits | 299353 |
+-------------------------------+-----------+
5 rows in set (0.00 sec)
InnoDB 使用间隙锁的目的,一方面是为了防止幻读,以满足相关隔离级别的要求
另外一方面,是为了满足其恢复和复制的需要。
- 深入浅出mysql ch19-20
- MySQL深入浅出
- 深入浅出MySQL
- MySQL深入浅出
- 算法导论 ch19 二项堆
- 深入浅出Mysql(一)
- 深入浅出Mysql(二)
- 深入浅出Mysql(三)
- 深入浅出Mysql(四)
- 深入浅出MySQL(1)
- 深入浅出MySQL(2)
- 深入浅出MySQL(3)
- MySQL InnoDB MVCC深入浅出
- MySQL深入浅出2
- 深入浅出MySql(1)
- 深入浅出MySql(2)
- 《深入浅出MySQL》读书笔记
- 深入浅出学习mysql命令
- 欢迎使用CSDN-markdown编辑器
- 如何利用spring做定时任务
- 完数
- 【转载】正则表达式基本语法详解
- dispatcherservlet详解
- 深入浅出mysql ch19-20
- Linux之基本概念
- 超炫酷的点击效果
- 项目开发过程中的细节问题及解决方法(Vue,Css)(入门级)
- Python 内置模块itertools的使用
- 素数求和
- elasticsearch score 得分 自定义
- 文件上传组件bootstrap fileinput
- 初级程序员到首席架构师的经历