首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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不擅长数学运算和逻辑判断 无法使用索引

83710
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Mysql开发手册

    打开 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 等。

    1.6K10

    Mysql开发规范

    开发规范对象命名命名规范的对象,是指数据库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合并,减少和数据库交互开发行为规范

    8110

    MySQL 开发规范

    所有的数据库对象名称必须使用小写字母并用下划线分割(MySQL大小写敏感,名称要见名知意,最好不超过32字符)禁止在数据中存储图片,文件二进制数据(使用文件服务器)禁止在线上做数据库压力测试禁止从开发环境...NULL值做特别的处理)使用timestamp或datetime类型来存储时间同财务相关的金额数据,采用decimal类型(不丢失精度,禁止使用 float 和 double)所有的数据库对象名称禁止使用MySQL...字符集必须统一,避免由于字符集转换产生的乱码,汉字utf8下占3个字节)所有表和字段都要添加注释COMMENT,从一开始就进行数据字典的维护建议使用物理分表的方式管理大数据尽量做到冷热数据分离,减小表的宽度(mysql...禁止给表中的每一列都建立单独的索引区分度最高的列放在联合索引的最左侧尽量把字段长度小的列放在联合索引的最左侧尽量避免使用外键(禁止使用物理外键,建议使用逻辑外键)尽量使用 union all 代替 union拆分复杂的大SQL为多个小SQL( MySQL

    51020

    MySQL开发规范.pdf

    3、 禁止使用分区表 Mysql 分区表技术还是不是很成熟,而且对分区键有严格要求,分区表变大后对于表备份恢复都有很大困难,建议在业务端使用 sharding 技术。...4、 禁止在数据库中存储明文密码 如果需要存储 MySQL 密码可以用 MySQL 内置函数 password()对明文密码进行 MD5 进行加密。...定义为 Not Null 原因如下: MySQL 数据库中每个为 NULL 的列都需要额外的 1 个字节进行存储,浪费空间资源。...3、建议查询中避免隐式转换 MySQL 中如果查询字段与表定义字段不同则会发生隐式转换,从而无法用到索引导致查询效率低下。 4、建议不要在 MySQL 数据库中存放业务逻辑。...,并且对于目前数据量存储过程、触发器、函数等没有任何优势(存储过程、函数对大数据量的处理和复杂业务逻辑很有优势),而且 mysql 存储过程还有一定 BUG。

    75210

    必要商城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不擅长数学运算和逻辑判断 无法使用索引

    68310

    开发篇-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中,数据库和表对应于数据目录中的目录和文件。所以,操作系统的大小写敏感性决定数据库和表命名的大小写敏感性。

    1.3K71

    浅谈PHP与MySQL开发

    个人学习方法分享 深入浅出后端开发(PHP篇) 深入浅出后端开发(MySQL篇) 本文阅读建议 1.一定要辩证的看待本文. 2.本文仅代表个人片面观点,如有不同观点,还往及时指出. 3.本文只阐述学习路线和学习当中的重点问题...PHP常常用来开发网页,或者网页后台,其学习成本相对其他语言较低,学习路线不会很陡峭,并且拥有ThinkPHP和Laravel成熟框架可供进行开发....深入浅出后端开发(PHP篇) 什么是MySQL 自己的理解 MySQL是一种高效,开源的关系型数据库,数据库是用来存储数据的,不同的数据库其性能,高并发处理,搜索的效率各不相同....深入浅出后端开发(MySQL篇) LAMP黄金搭档 自己的理解 LAMP因为其开源的特点,成本低,建站速度快,易于维护,易于扩展,成型框架多....因为易于学习,成本低,开发环境易于搭建,所以本人也选择了LAMP进行学习,其中MySQL 和PHP 担当了项目当中的后台开发的角色.

    2.3K150

    ruby on rails + mysql 开发环境搭建

    ror对于初学者来讲,可能最大的困难莫过于开发环境的安装与搭建,今天折腾了大半天基本搞定了,把过程贴在这里,以便初学者少走弯路。...3.安装mongrel(相当于asp.net开发中的IIS,在网上看到有说IIS上也可以跑ROR,不过没试过) 命令行: gem install mongrel (有关mongrel的更多操作,可以参照这篇文章...group_id=904 下载InstantRails-2.0-win.zip解压后得到),当然如果想使用mysql做为数据库的话,继续往下看 5.安装mysql 5.1 百度“mysql下载”第一个便是下载地址...6.配置ruby下的mysql连接 6.1 把Mysql安装目录中bin目录下的libmysql.dll 复制到ruby安装目录的bin目录下(一般是c:\ruby\bin下) 6.2 到http://...for ruby的文档 6.3 安装mysql for ruby的驱动,命令行键入: gem install mysql 6.4 把mysql.so复制到C:\ruby\lib\ruby\site_ruby

    3.8K50

    MySQL开发规范与使用技巧总结

    a)MySQL有配置参数lower_case_table_names,不可动态更改,Linux系统默认为 0,即库表名以实际情况存储,大小写敏感。如果是1,以小写存储,大小写不敏感。...使用INT UNSIGNED而不是CHAR(15)来存储IPV4地址,通过MySQL函数inet_ntoa和inet_aton来进行转化。...IN是范围查找,MySQL内部会对IN的列表值进行排序后查找,比OR效率更高。 9.表字符集使用UTF8,必要时可申请使用UTF8MB4字符集。...mysql对表的修改绝大部分操作都需要锁表并重建表,而锁表则会对线上业务造成影响。为减少这种影响,必须把对表的多次alter操作合并为一次操作。...21.不要在MySQL数据库中存放业务逻辑。 数据库是有状态的服务,变更复杂而且速度慢,如果把业务逻辑放到数据库中,将会限制业务的快速发展。

    64731

    看了这篇MySQL,开发功力再升级

    一、查询截取分析 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加任何类型的锁。

    35530
    领券