1.mysql两种主流存储引擎:Innodb引擎、MyIASM引擎

应用场景:

InnoDB用于事务处理,具有ACID事务支持等特性,如果在应用中执行大量insert和update操作,应该选择InnoDB

MyIASM管理非事务表,提供高速存储和检索以及全文搜索能力,如果再应用中执行大量select操作,应该选择MyIASM

   mysql部分系统表采用MyIASM存储引擎

2.通过事物批量插入数据

List<string> sqlList = new List<string>();
string sql = "Insert/Delete/Update ...";
sqlList.Add(sql);//此处拼接增删改语句,通过事物一次提交
MySqlDBHelper.ExecuteTransaction(sqlList);

 3.LOCK TABLE  表名  READ/WRITE      UNLOCK TABLES

4.索引

索引是表的索引目录,在查找内容之前先查目录中查找索引位置,从而快速定位查询数据;可以理解成新华字典中的索引;索引会保存在额外的文件中。

一般的索引种类及功能:

普通索引:仅加速查询

唯一索引:加速查询 + 列值唯一(可以有null)

主键索引:加速查询 + 列值唯一 + 表中只有一个(不可以有null)

组合索引:多列值组成一个索引,专门用于组合搜索,其效率大于索引合并

全文索引:对文本的内容进行分词,进行搜索

索引合并:使用多个单列索引组合查询搜索

覆盖索引:select的数据列只用从索引中就能够取得,不必读取数据行,换句话说查询列要被所建的索引覆盖

http://www.cnblogs.com/lyhabc/p/3691555.html

对已有表添加索引

第一种语法:
CREATE 索引类型 索引名 ON 表名 (字段名)
第二种语法:
ALTER TABLE 表名 ADD 索引类型 索引名 (字段名) 示例:
CREATE INDEX index_emp_name on emp1(name);
ALTER TABLE emp2 ADD UNIQUE INDEX index_bank_num(band_num);

删除索引

语法:
DROP INDEX 索引名 on 表名
DROP INDEX index_emp_name on emp1;
DROP INDEX bank_num on emp2;

5.show processlist

 6.复制表的内容

create table emp_bak (select * from emp)

7.查询的顺序如下

FROM  ,ON ,  WHERE, SELECT ,  GROUP  BY ,  ORDER BY   ,HAVING

8.mysql最大连接数

查看最大连接数

show variables like '%max_connections%';

第一种修改最大连接数(这种方式有个问题,就是设置的最大连接数只在mysql当前服务进程有效,一旦mysql重启,又会恢复到初始状态。因为mysql启动后的初始化工作是从其配置文件中读取数据的,而这种方式没有对其配置文件做更改。)

set GLOBAL max_connections = 200;

第二种通过修改配置文件来修改mysql最大连接数(max_connections)。

这种方式说来很简单,只要修改MySQL配置文件my.ini 或 my.cnf的参数max_connections,将其改为max_connections=1000,然后重启MySQL即可。

9.把password_expired 改成不过期

update user set password_expired='N' where user='root';
flush privileges;
quit

10.巧用CAS解决数据一致性问题

高并发“查询并修改”的场景,可以用CAS(Compare and Set)的方式解决数据一致性问题。对应到业务,即在set的时候,加上初始条件的比对。

并发操作发生时:

业务1执行 => UPDAtE t_yue SET money=28 WHERE uid=$uid AND money=100

业务2执行 => UPDAtE t_yue SET money=38 WHERE uid=$uid AND money=100

11.表必备三字段: id, gmt_create, gmt_modified。

永远为每张表设置一个ID做为其主键,而且最好的是一个INT型的(推荐使用UNSIGNED),并设置上自动增加的AUTO_INCREMENT标志。就算是你 users表有一个主键叫 “email”的字段,你也别让它成为主键。使用 VARCHAR 类型来当主键会使用得性能下降。

12.解决修改datadir路径后无法启动问题

如果在Windows系统中datadir路径后无法启动问题,报错1067错误,可以使用下列方法解决:

在新创建的data文件夹上右键,选择“属性”->“安全”,在组和用户(G)中添加NETWORK SERVICE即可。

13.设计表时不允许空值

通过声明列“NOT NULL”来实现这一点

14.MySQL中lock tables和unlock tables浅析

15.使用join链接代替子查询

MySQL实战积累的更多相关文章

  1. mysql实战之 批量update

    mysql实战之批量update 现阶段我们的业务量很小,要对admin_user表中的relationship字段进行更新,指定id是409.已知409是公司内的一服务中心,需要把该服务中心放到区代 ...

  2. 【MySQL】MySQL零碎积累

    MySQL零碎积累 ■ 在给MySQL添加新用户时可以这么操作: create user 'newUser' identified by 'password'; grant all privilege ...

  3. centos mysql 实战 第一节课 安全加固 mysql安装

    centos mysql  实战  第一节课   安全加固  mysql安装 percona名字的由来=consultation 顾问+performance 性能=per  con  a mysql ...

  4. MySQL实战 | 04 为什么要使用索引?

    原文链接:MySQL实战 | 为什么要使用索引? 用过 MySQL 的应该都知道索引是干啥的吧,应该多少都设置过索引,但是若是问你索引是怎么实现的,你能说上来吗? 索引是什么? MySQL 官方对索引 ...

  5. MySQL实战 | 06/07 简单说说MySQL中的锁

    原文链接:MySQL实战 | 06/07 简单说说MySQL中的锁 本文思维导图:https://mubu.com/doc/AOa-5t-IsG 锁是计算机协调多个进程或纯线程并发访问某一资源的机制. ...

  6. MySQL实战 | 03 - 谁动了我的数据:浅析MySQL的事务隔离级别

    原文链接:这一次,带你搞清楚MySQL的事务隔离级别! 使用过关系型数据库的,应该都事务的概念有所了解,知道事务有 ACID 四个基本属性:原子性(Atomicity).一致性(Consistency ...

  7. MySQL实战 | 01-当执行一条 select 语句时,MySQL 到底做了啥?

    原文链接:当执行一条 select 语句时,MySQL 到底做了啥? 也许,你也跟我一样,在遇到数据库问题时,总时茫然失措,想重启解决问题,又怕导致数据丢失,更怕重启失败,影响业务. 就算重启成功了, ...

  8. 极客时间 Mysql实战45讲 07讲行锁功过:怎么减少行锁对性能的影响笔记 极客时间

    极客时间 Mysql实战45讲 07讲行锁功过:怎么减少行锁对性能的影响笔记 极客时间极客时间 Mysql实战45讲 07讲行锁功过:怎么减少行锁对性能的影响笔记 极客时间 笔记体会: 方案一,事务相 ...

  9. Mysql实战45讲 06讲全局锁和表锁:给表加个字段怎么有这么多阻碍 极客时间 读书笔记

    Mysql实战45讲 极客时间 读书笔记 Mysql实战45讲 极客时间 读书笔记 笔记体会: 根据加锁范围:MySQL里面的锁可以分为:全局锁.表级锁.行级锁 一.全局锁:对整个数据库实例加锁.My ...

随机推荐

  1. IOS 沙盒机制 && 关于document\library\tmp的灵活使用

    默认情况下,每个沙盒含有3个文件夹:Documents, Library 和 tmp.因为应用的沙盒机制,应用只能在几个目录下读写文件Documents:苹果建议将程序中建立的或在程序中浏览到的文件数 ...

  2. 如何成为apple开发者???

    苹果开发者帐号申请流程如下 http://www.360doc.com/content/13/1029/12/11029609_325024387.shtml 苹果开发者账号分为 个人(individ ...

  3. 【阿里云产品公测】云引擎ACE初体验

    作者:阿里云用户蓝色之鹰 :RYYjmG5;  来投票支持我把=i2]qj\  序号2. [阿里云产品公测]云引擎ACE初体验:作者:蓝色之鹰 e(OKE7  序号10.[阿里云产品公测]结构化数据服 ...

  4. mysql的 join联合查询的通俗解释

    表a 1 2 3 4 aid adate 1 a1 2 a2 3 a3 表b 1 2 3 4 bid bdate 1 b1 2 b2 4 b4 两个表a.b相连接,要取出id相同的字段. 1 sele ...

  5. PreparedStatement和Statement的区别

    转自:http://blog.sina.com.cn/s/blog_77eba18f01019csh.html 1. PreparedStatement接口继承Statement, PreparedS ...

  6. XML Schema验证

    XML Schema验证 一.什么事Schema(XSD) XML Schema是微软定义的一套用来验证XML技术.是一套预先规定的XML元素和属性创建的,这些元素和属性定义了XML文档的结构和内容模 ...

  7. 剑指Offer08 二进制中1的个数

    /************************************************************************* > File Name: 08_NumOf1 ...

  8. codeforces 653D D. Delivery Bears(二分+网络流)

    题目链接: D. Delivery Bears time limit per test 2 seconds memory limit per test 256 megabytes input stan ...

  9. JAXL发送房间消息

    使用composer形式安装的JAXL <?php require_once "vendor/autoload.php"; $client = new JAXL(array( ...

  10. Java程序修改文件名

    package script; import java.io.File; import java.io.IOException; public class Realname { public stat ...