须见名知意 库名、表名、字段名禁用使 MySQL保留字 临时库、表名必须以tmp为前缀,并以日期为后缀 备份库、表必须以bak为前缀,并以日期为后缀 基础规范 使用INNODB存储引擎 表字符集使用utf8mb4...所有表都需要添加注释 单表数据量建议控制在5000W以内 不在数据库中存储图片、文件等大数据 禁止在线上做数据库压力测试 禁止从测试、开发环境直连数据库 库表设计 禁止使用分区表 拆分大字段和访问频率低的字段
尽量不要在频繁更新的列上建立索引 6) 不在低基数列上建立索引,例如状态、类型等 7) 不在索引列进行数学运算和函数运算(参与了运算的列不会引用索引) 8) 复合索引须符合最左前缀的特点建立索引(mysql
字段名必须使用小写字母并采用下划线分割; 库名、表名、字段名禁 止超过32个字符,须见名知意; 库名、表名、字段名支持最多64个字符,统一规范、易于辨识以及减少传输量不要超过32; 库名、表名、字段名禁止使用MySQL...utf8mb4( 5.5.3版本以上支持) 所有表都需要添加注释,单表数据量建议控制在1000万以内; 不在数据库中存储图片、文件等大数据; 禁止在线上做数据库压力测试; 禁止从测试、开发环境直连数据库...; 三、库表设计规范 禁止使用分区表 MySQL的分区表实际性能不是很好,且管理维护成本较高 拆分大字段和访问频率低的字段,分离冷热数据 用HASH进行散表,表名后缀使用十进制数,下标从...really need VARCHAR(N),N表示的是字符数不是字节数,比如VARCHAR(255),可以最大可存储255个汉字,需要根据实际的宽度来选择NVARCHAR(N),N尽可能小,因为MySQL...最擅长的是单表的主键/二级索引查询 Join消耗较多的内存,产生临时表 避免在数据库中进行数学运算 容易将业务逻辑和DB耦合在一起 MySQL不擅长数学运算和逻辑判断 无法使用索引
内置函数 概念 在开发称之为 ‘方法’ 将一组逻辑语句在方法体中 对外暴露的方法名 作用 1隐藏代码实现细节 2提高代码的重性 调用方法 select 函数名 对表操作的话需要加上表 select 函数名
打开 MySQL 服务 $ sudo service mysql start Linux 安装mysql #安装mysql服务端,核心程序 $ sudo apt-get install mysql-server...# 安装mysql客户端 $ sudo apt-get install mysql-client 命令验证是否安装并启动成功: $ sudo netstat -tp | grep mysql 如果需要修改配置文件...$ sudo vim /etc/mysql/my.cnf 打开mysql # 启动mysql $ sudo service mysql start # 登录 $ mysql -uroot -pxxxx...新建数据表 CREATE TABLE 表的名字 ( 列名a 数据类型(数据长度), 列名b 数据类型(数据长度), 列名c 数据类型(数据长度) ); MySQL 常用数据类型 数据类型 大小(字节...mysqldump 是 MySQL 用于备份数据库的实用程序。它主要产生一个 SQL 脚本文件,其中包含从头重新创建数据库所必需的命令 CREATE TABLE INSERT 等。
开发规范对象命名命名规范的对象,是指数据库SCHEMA、表TABLE、字段COLUMN、索引INDEX、约束CONSTRAINTS等【强制】凡是需要命名的对象,其标识符不能超过30个字符【强制】名称必须以英文字母开头...为前缀,以日期yyyymmdd为后缀,比如 tmp_order_20160425,正常业务用到的临时表、中间表,前后缀尽量不要包含 tmp 以免造成歧义库表设计【强制】生产/UAT环境建库建表,请参考《mysql...sql_mode为严格模式(STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION),在此模式下任何不支持的语法或者数据校验不合格的,都将直接返回错误【建议】日志类数据不建议存储在MySQL...建议】禁止使用ENUM,可使用TINYINT代替增加新的ENUM值要做DDL操作;ENUM的内部实际存储就是整数而非字符串;【建议】禁止使用OR条件,必须改为IN查询,并注意in的个数小于200旧版本mysql...)来判断是否为NULL值: SELECT IF(ISNULL(SUM(g)), 0, SUM(g)) FROM table;【建议】SQL合并,主要是指的DML时候多个value合并,减少和数据库交互开发行为规范
所有的数据库对象名称必须使用小写字母并用下划线分割(MySQL大小写敏感,名称要见名知意,最好不超过32字符)禁止在数据中存储图片,文件二进制数据(使用文件服务器)禁止在线上做数据库压力测试禁止从开发环境...NULL值做特别的处理)使用timestamp或datetime类型来存储时间同财务相关的金额数据,采用decimal类型(不丢失精度,禁止使用 float 和 double)所有的数据库对象名称禁止使用MySQL...字符集必须统一,避免由于字符集转换产生的乱码,汉字utf8下占3个字节)所有表和字段都要添加注释COMMENT,从一开始就进行数据字典的维护建议使用物理分表的方式管理大数据尽量做到冷热数据分离,减小表的宽度(mysql...禁止给表中的每一列都建立单独的索引区分度最高的列放在联合索引的最左侧尽量把字段长度小的列放在联合索引的最左侧尽量避免使用外键(禁止使用物理外键,建议使用逻辑外键)尽量使用 union all 代替 union拆分复杂的大SQL为多个小SQL( MySQL
3、 禁止使用分区表 Mysql 分区表技术还是不是很成熟,而且对分区键有严格要求,分区表变大后对于表备份恢复都有很大困难,建议在业务端使用 sharding 技术。...4、 禁止在数据库中存储明文密码 如果需要存储 MySQL 密码可以用 MySQL 内置函数 password()对明文密码进行 MD5 进行加密。...定义为 Not Null 原因如下: MySQL 数据库中每个为 NULL 的列都需要额外的 1 个字节进行存储,浪费空间资源。...3、建议查询中避免隐式转换 MySQL 中如果查询字段与表定义字段不同则会发生隐式转换,从而无法用到索引导致查询效率低下。 4、建议不要在 MySQL 数据库中存放业务逻辑。...,并且对于目前数据量存储过程、触发器、函数等没有任何优势(存储过程、函数对大数据量的处理和复杂业务逻辑很有优势),而且 mysql 存储过程还有一定 BUG。
varchar(30) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; 忘记了mysql...密码 修改配置文件 [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock # ADD skip-name-resolve...skip-grant-tables 然后重启MySQL服务并免密码登录 service mysqld restart mysql 执行修改密码SQL 将root用户的密码统一设为'admin' UPDATE...mysql.user SET Password=password('123456') WHERE User='root'; 还原MySQL配置文件并重启服务 修改用户登录HOST UPDATE mysql.user
第一章 PHP快速入门 1.18 使用declare declare(directive) { // block } 第十七章 使用PHP和MySQL实现身份验证 识别访问这 实现访问控制...使用基本身份验证 在PHP中使用基本身份验证 在Apache的.htaccess文件中使用基本身份验证 使用mod_autho_mysql身份验证 创建自定义身份验证 17.3
不允许使用root账号,所有开发和测试应当分配指定账号,并授予最小数据库权限 2....MySQL在处理大表时,性能就开始明显降低,所以建议单表物理大小限制在16GB,表中数据行数控制在2000W内。^[业内的规则是超过2000W性能开始明显降低。...「ORDER BY,GROUP BY,DISTINCT的字段需要添加在索引的后面,形成覆盖索引」 联合索引注意 「最左匹配原则」:必须按照从左到右的顺序匹配,MySQL会一直向右匹配索引直到遇到范围查询
注意:在MySQL5.1版本中分区的实现仍然是pre-alpha版本,该版本中分区特性不是特别适用于生产环境,部分本章中描述的一些功能在MySQL5.1版本中没有实现和提供支持,部分在新发布的MySQL5.5...中已经实现,本章基于MySQL5.1版本对分区特性进行描述,如果没有特别标注,描述的特性都适用于MySQL5.1版本,MySQL5.1版本不支持的功能或者在MySQL5.5新增加支持的特性将会特别标注,...MySQL支持使用大部分存储引擎(比如MyISAM、INNODB、MEMORY等存储引擎)创建分区表;MySQL不支持使用MERGE或CSV存储引擎来创建分区表,更多的内容可以参考MySQL最新的官方文档...MySQL的分区表上创建的索引一定是本地LOCAL索引。...说到命名,顺便介绍一下MySQL命名中的大小写敏感:在MySQL中,数据库和表对应于数据目录中的目录和文件。所以,操作系统的大小写敏感性决定数据库和表命名的大小写敏感性。
个人学习方法分享 深入浅出后端开发(PHP篇) 深入浅出后端开发(MySQL篇) 本文阅读建议 1.一定要辩证的看待本文. 2.本文仅代表个人片面观点,如有不同观点,还往及时指出. 3.本文只阐述学习路线和学习当中的重点问题...PHP常常用来开发网页,或者网页后台,其学习成本相对其他语言较低,学习路线不会很陡峭,并且拥有ThinkPHP和Laravel成熟框架可供进行开发....深入浅出后端开发(PHP篇) 什么是MySQL 自己的理解 MySQL是一种高效,开源的关系型数据库,数据库是用来存储数据的,不同的数据库其性能,高并发处理,搜索的效率各不相同....深入浅出后端开发(MySQL篇) LAMP黄金搭档 自己的理解 LAMP因为其开源的特点,成本低,建站速度快,易于维护,易于扩展,成型框架多....因为易于学习,成本低,开发环境易于搭建,所以本人也选择了LAMP进行学习,其中MySQL 和PHP 担当了项目当中的后台开发的角色.
ror对于初学者来讲,可能最大的困难莫过于开发环境的安装与搭建,今天折腾了大半天基本搞定了,把过程贴在这里,以便初学者少走弯路。...覆盖安装完成以后,再次运行gem install rails,居然可以了(不过该过程要联网下载,时间会比较长),完成后,命令行键入rails -v 验证版本 3.安装mongrel(相当于asp.net开发中的...group_id=904 下载InstantRails-2.0-win.zip解压后得到),当然如果想使用mysql做为数据库的话,继续往下看 5.安装mysql 5.1 百度“mysql下载”第一个便是下载地址...版本,rails框架对5.1版本的mysql支持并不好,在rake db:migrate时总提示出错 5.2 找一款适合自己的mysql管理工具,如果你是php程序员,phpmysqladmin也许很适合你...for ruby的文档 6.3 安装mysql for ruby的驱动,命令行键入: gem install mysql 6.4 把mysql.so复制到C:\ruby\lib\ruby\site_ruby
禁从测试、开发环境直连数据库 **二、命名规范 1. 库名、表名、字段名禁止超过32个字符。须见名之意 2. 库名、表名、字段名禁止使用MySQL保留字 3....备份库、表必须以bak为前缀,并以日期为后缀 三、库、表、字段开发设计规范 1. 禁使用分区表 2. 拆分大字段和访问频率低的字段,分离冷热数据 3. 采用合适的分库分表策略。 4....CPU) (2) 事务要简单,整个事务的时间长度不要太长 (3) 避免使用触发器、函数、存储过程 (4) 降低业务耦合度,为sacle out、sharding留有余地 (5) 避免在数据库中进数学运算(MySQL
开发者必备Mysql常用命令,涵盖了数据定义语句、数据操纵语句及数据控制语句,基于Mysql5.7。...数据定义语句(DDL) 数据库操作 登录数据库: mysql -uroot -proot 创建数据库: create database test 查看所有数据库: show databases ?...修改mysql全局时区为北京时间,即我们所在的东8区: set global time_zone = '+8:00'; 修改当前会话时区: set time_zone = '+8:00' http://
一、查询截取分析 1)慢查询日志 “ MySQL 的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值的语句,具体指运行时间超过long_query_time值的SQL...开始使用: 默认情况下,MySQL数据库没有开启慢查询日志,需要我们手动来设置这个参数。...| 和 more使用, 否则有可能出现爆屏的情况 mysqldumpslow -s r -t 10 /var/lib/mysql/cbuc_slow.log | more 2)Show Profile...select * from mysql.general_log 二、Mysql锁机制 1)概述 “锁是计算机协调多个进程或线程并发访问某一资源的机制。...# 通过这段加锁,Mysql会对查询结果中的每行都加共享锁 select ... 写锁(排他锁): 加上排它锁后,其他事务不能再对A加任何类型的锁。
3、避免用MySQL的保留字,如:backup、call、group等。 4、所有数据库对象使用小写字母,实际上MySQL中是可以设置大小写是否敏感的,为了保证统一性,我们这边规范全部小写表示。...3、如无特殊需要,严禁开发人员创建视图。 4、命名应使用小写。 七、存储过程命名规范 1、存储过程名以sp开头,表示存储过程(storage procedure)。之后多个单词以下划线(_)进行连接。...但N应尽可能小,因为MySQL一个表中所有的VARCHAR字段最大长度是65535个字节,且存储字符个数由所选字符集决定。...六、约束设计规范 1、PK应该是有序并且无意义的,由开发人员自定义,尽可能简短,并且是自增序列。 2、表中除PK以外,还存在唯一性约束的,可以在数据库中创建以“uk_”作为前缀的唯一约束索引。...3、MySQL中的text类型字段存储: (1)不与其他普通字段存放在一起,因为读取效率低,也会影响其他轻量字段存取效率。
except: 40 db.rollback() # 发生错误时回滚 41 42 # 关闭数据库连接 43 db.close() 44 45 另一种形式 3、查询操作 Python查询Mysql