MySQL优化之推荐使用规范
一、基础规范使用InnoDB存储引擎
支持事务、行级锁、并发性能更好、CPU及内存缓存页优化使得资源利用率更高
推荐使用utf8mb4字符集
无需转码,无乱码风险, 支持emoji表情以及部分不常见汉字
表、字段必须加注释
方便他人理解字段意思,在后期维护中非常非常有用,不用去瞎猜这个字段是干嘛的。
不在数据库做计算
禁止使用存储过程、视图、触发器、Event。
在并发量大的情况下,这些功能很可能将数据库拖跨,业务逻辑放到服务层具备更好的扩展性,能够轻易实现“增机器就加性能”
禁止存储文件
文件存储在文件系统,数据库里存URI
控制单表数据量
单表记录控制在千万级
二、命名规范库名、表名、字段名:小写,下划线风格
非唯一索引名idxxxx,唯一索引名uniqxxx
表必须有主键,例如自增主键
主键递增,数据行写入可以提高插入性能
主键要选择较短的数据类型,Innodb引擎普通索引都会保存主键的值,较短的数据类型可以有效的减少索引的磁盘空间,提高索引的缓存效率
保证实体的完整性,唯一性
不要使用外键,如果有外键约束,用应用程 ...
MySQL优化之my.conf配置详解
MySQL的优化我分为两个部分,一是服务器物理硬件的优化,二是MySQL自身(my.cnf)的优化。
MySQL自身因素当解决了服务器硬件制约因素后,让我们看看MySQL自身的优化是如何操作的。 对MySQL自身的优化主要是对其配置文件my.cnf中的各项参数进行优化调整。下面我们介绍一些对性能影响较大的参数。 由于my.cnf文件的优化设置是与服务器硬件配置息息相关的, 因而我们指定一个假想的服务器硬件环境:CPU: 2颗Intel Xeon 2.4GHz 内存: 4GB DDR 硬盘: SCSI 73GB(很常见的2U服务器 ) 。下面,我们根据以上硬件配置结合一份已经优化好的my.cnf进行说明:
[client]default-character-set=utf8mb4#mysqlde utf8字符集默认为3位的,不支持emoji表情及部分不常见的汉字,故推荐使用utf8mb4 [mysql]default-character-set=utf8mb4 [mysqld]skip-locking #避免MySQL的外部锁定,减少出错几率增强稳定性。 #skip-name-resol ...
itextpdf转换尺寸为A4
笔者最开始的想法是通过itext实现转换页面尺寸为A4,首先通过不管三七二十一直接Google,然后得到了以下代码
public static void convertBack(String source, String target) { try { PdfReader pdfReader = new PdfReader(source); Document doc = new Document(); PdfWriter writer = PdfWriter.getInstance(doc, new FileOutputStream(target)); doc.open(); PdfContentByte cb = writer.getDirectContent(); for (int i = 1; i <= pdfReader.getNumberOfPages(); i++) { ...
Linux下hp打印机驱动hplip分析
Hplip分析
版本是2.14,源码位置:http://hplipopensource.com。实践中使用的打印机型号:Deskjet 1010.分析的目的就是搞清楚一个灰色地带—打印机通信.
D-Bus初始化流程D-Bus的初始化同样是在ui4/devmgr5.py开始的。
ui4/devmgr5.py
class DevMgr5(QMainWindow, Ui_MainWindow): ...... # TODO: Make sbus init mandatory success, else exit def initDBus(self): self.dbus_loop = DBusQtMainLoop(set_as_default=True) self.dbus_avail, self.service, self.session_bus = device.init_dbus(self.dbus_loop) ...... # Receive events from the session b ...
MySQL数据库的优化方式
提到用什么方式做数据库优化啊,基本上千篇一律地回复就是三个字:“加索引。”(手动狗头)
下面跟大家成体系化地详谈一下,MySQL数据库的优化方式有哪些?
既然谈到优化,一定想到要从多个维度进行优化。
这里的优化维度有四个:硬件配置、参数配置、表结构设计和及索引。
其中 SQL 语句相关的优化手段是最为重要的。
硬件配置硬件方面的优化可以有 对磁盘进行扩容、将机械硬盘换为SSD,或是把CPU的核数往上提升一些,增强数据库的计算能力,或是把内存扩容了,让Buffer Pool能吃进更多数据, 等等。但这个优化手段成本最高,但见效最快。
有句话怎么说的来着,能通过硬件升级来解决的事情,千万别碰代码。哈哈。
参数配置保证从内存读取MySQL 会在内存中保存一定的数据,通过 LRU(最近最少使用)算法将不常访问的数据保存在硬盘文件中。尽可能的扩大内存中的数据量,将数据保存在内存中,从内存中读取数据,可以提升 MySQL 性能。
MySQL 使用优化过后的 LRU 算法:
普通LRU:末尾淘汰法,新数据从链表头部加入,释放空间时从末尾淘汰改进LRU:链表分为new和old两个部分,加入元素时并不 ...
Hello World
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.
Quick StartCreate a new post1$ hexo new "My New Post"
More info: Writing
Run server1$ hexo server
More info: Server
Generate static files1$ hexo generate
More info: Generating
Deploy to remote sites1$ hexo deploy
More info: Deployment