MySQL九读书笔记 字符串模式匹配】的更多相关文章

当我们使用查询,条件常常会遇到模糊查询.的模糊查询相关的字符串模式匹配. 这里,主要约两:标准SQL模式匹配.扩展正则表达式模式匹配.     一.标准的SQL模式匹配 SQL的模式匹配同意你使用"_"匹配不论什么单个字符,而"%"匹配随意数目字符(包含零个字符). 在MySQL中.SQL的模式缺省是忽略大写和小写的.以下显示一些样例.注意在你 使用SQL模式时,你不能使用=或!=:而使用LIKE或NOT LIKE比較操作符. 为了找出包括正好5个字符的名字,使用&…
1.锁 为什么需要锁?因为数据库要解决并发控制问题.在同一时刻,可能会有多个客户端对表中同一行记录进行操作,比如有的在读取该行数据,其他的尝试去删除它.为了保证数据的一致性,数据库就要对这种并发操作进行控制,因此就有了锁的概念. 1.1锁的分类 从对数据操作的类型(读\写)分 读锁(共享锁):针对同一块数据,多个读操作可以同时进行而不会互相影响. 写锁(排他锁):当前写操作没有完成前,它会阻断其他写锁和读锁. 大多数时候,MySQL锁的内部管理都是透明的. 1.2锁粒度(Lock granula…
第5章 创建高性能的索引 本文为<高性能Mysql 第三版>第四章读书笔记,Mysql版本为5.5 索引基础 索引的重要性:找一本800面的书的某一段内容,没有目录也没有页码(页码也可类比是索引) 索引类型 B-Tree 索引 : 可用于全值匹配.最左前缀匹配.列前缀匹配.范围值匹配.精确匹配某一列并范围匹配另外一列.只访问索引的查询 ,原文截图: 哈希索引 : 只适用于精确匹配查询,不适用于范围查询 空间数据索引 : 可以有效地使用任意维度来组合查询 全文索引 : 做的事情类似于搜索引擎,而…
第4章 Schema 与数据类型优化 本文为<高性能Mysql 第三版>第四章读书笔记,Mysql版本为5.5 选择优化的数据类型 选择合适数据类型的三个原则 更小的通常更好 - 速度更快,占用更少 简单就好 - 简单数据类型占用更少的CPU周期,例如整型的比字符串操作代价更低 尽量避免NULL - 查询包含NULL的列,对Mysql来说更难优化,因为会使得索引,索引统计和值比较更为复杂 整数类型 整数的类型有:TINYINT .SMALLINT.MEDIUMINT.INT.BIGINT,分别…
这本书去年11月出的,今年中文版也出了,并且直接上了微信读书,之后有空就读一读,分享下读书笔记~ 原文内容比较充实,建议有时间可以读一下原文. 第一章主要是个概览. MySQL的逻辑架构 默认情况下,每个客户端连接都会在服务器进程中拥有一个线程,该连接的查询只会在这个单独的线程中执行,该线程驻留在一个内核或者CPU上. 线程池 优化器会向存储引擎询问它的一些功能.某个具体操作的成本,以及表数据的统计信息. query cache 5.7.20弃用 8.0移除 考虑应用自己在redis中缓存 并发…
<High Performance MySQL>真是本经典好书,从应用层到数据库到硬件平台,各种调优技巧.常见问题全都有所提及.数据库的各种概念技巧平时都有接触,像索引.分区.Sharding等等,但要想真正提高还是得如此系统学习一下. Chapter 1: MySQL Architecture and History 1.1 Transaction Isolation Level 事务隔离级别真是个老生常谈的问题的,但大多材料一提到脏读.幻读.重复读就讲得云里雾里,所以还是自己动手实践能体会…
慢查询 当一个资源变得效率低下的时候,应该了解一下为什么会这样.有如下可能原因:1.资源被过度使用,余量已经不足以正常工作.2.资源没有被正确配置3.资源已经损坏或者失灵 因为慢查询,太多查询的实践过长而导致堆积在逻辑上.慢查询到底是原因还是结果?在深入调查前是无法知晓的.记住,在正常的时候这个查询也是正常运行的.一个查询需要filesort和创建临时表并不一定意味着就是有问题的.尽管消除filesort和临时表通常来说是“最佳实践”. MySQL数据类型 一般情况下,应该尽量使用可以正确存储数…
索引是存储引擎用于快速找到记录的一种数据结构.索引优化是对查询性能优化的最有效手段.索引能够轻易将查询性能提高几个数量级.创建一个最优的索引经常需要重写查询.5.1 索引基础 在MySQL中,存储引擎首先在索引中找到对应值,然后根据匹配的索引记录找到对应的数据行. 索引可以包含一个或多个列的值.如果索引包含多个列,那么列的顺序也十分重要,因为MySQL只能高效地使用索引的最左前缀列. 5.1.1 索引的类型 索引有很多类型,可以为不同的场景提供更好的性能.在MySQL中,索引是在储存引擎层而不是…
举例如下: char a[10]; 1.定义的时候直接用字符串赋值 char a[10]="hello"; 注意:不能先定义再给它赋值,如  char a[10];  a[10]="hello"; 这样是错误的! 2.对数组中字符逐个赋值 char a[10]={'h','e','l','l','o'}; 3.利用strcpy char a[10]; strcpy(a, "hello"); 易错情况: 1.char a[10]; a[10]=&q…
#include <stdio.h> #define MAXLINE 10 int getLine(char s[], int lim); void copy(char to[], char from[]); int calcLen(char s[]); int main() { int len, index, row; char line[MAXLINE]; char post_line[MAXLINE][MAXLINE]; row = 0; while((len = getLine(lin…