作家
登录

青铜到王者,快速提升你MySQL数据库的段位!

作者: 来源: 2017-09-01 09:02:12 阅读 我要评论

  • innodb_lru_scan_depth = 4000 
  • innodb_checksum_algorithm = crc32 
  • innodb_lock_wait_timeout = 10 
  • innodb_rollback_on_timeout = 1 
  • innodb_print_all_deadlocks = 1 
  • innodb_file_per_table = 1 
  • innodb_online_alter_log_max_size = 4G 
  • internal_tmp_disk_storage_engine = InnoDB 
  • innodb_stats_on_metadata = 0 
  • innodb_status_file = 1 
  • innodb_status_output = 0 
  • innodb_status_output_locks = 0 
  • performance_schema = 1 
  • performance_schema_instrument = '%=on' 
  • [mysqldump] 
  • quick 
  • max_allowed_packet = 32M  
  • 1. 权限申请流程要设置规范,合理.

    2. 全量日记 general log:萌芽日记记录了所有对 mysql 数据库请求的信息,不论这些请求是否获得了精确的履行。

    3. 二进制日记 binlog:记录了对数据库履行更改的所有操作。然则并不包含 select 和 show 这类操作。

    4. 中继日记 relay log:主大年夜同步,大年夜库须要把主库传递过来的日记,记录到本身的 relay log 琅绫擎。

    5. 慢萌芽日记 slow log:运行时光跨越某值的所有 sql 语句都记录到慢萌芽日记文件中。

    ——对数据库的表设计也要进修清跋扈

    数据类型的选择,重要参考官方文档。

    ——数据碎片的┞符理

    1. 缺点日记 error log:对 mysql 启动,运行,封闭过程进行了记录。

    产生碎片的原因:

    1. 主如果因为对大年夜表进行删除操作;

    整顿碎片的办法:

    1. 备份数据表,导入导出,删除旧表

    2. 履行 alter table table_name engine=innodb;

    ——收集统计信息

    包管统计信息的精确性,才能确保我们的 sql 履行筹划精确。收集办法:

    1. 重启 mysql 办事

    2. 遍历 tables 表

    ——进修分区表

    分区表的种类:

    1. range

    2. list

    3. hash

    4. key

    冷备:数据库关掉落,影响营业。体系级其余文件 copy(PS:如今这种根本被放弃了)

    ——进修对索引的熟悉

    大年夜致分为:

    1. 若何查看数据库中索引:show index from table_name;

    2. 学会查看数据库索引的选择性:select count(distinct c1)/count(*) from table_name; 选择性越高,越合适创建索引

    3. 创建索引的过程中,学会查看履行筹划。内功心法:先看 type 值,再看 key,再看 rows,最后看 extra;

    4. 懂得创建索引的好处

    a. 进步数据检索效力

    b. 进步聚合函数效力

    c. 进步排序效力

    d. 个别时刻可以避免回表

    e. 削减多表接洽关系时扫描行数

    f. 主键、独一索引可以作为束缚

    ——对事务的进修

    先要知道事务的四大年夜特点(ACID):

    b. 一致性(Consistency)

    一致性是指数据库在事务操作前和事务处理后,个中的数据必须都知足营业规矩束缚.

    c. 隔离性(Isolation)

    d. 持久性(Durability)

    事务处理停止后,对数据的修改就是永远的

    熟悉 mysql 数据库四种事务隔离级别:

    1. read uncommitted(RU)读未提交:

    一个事务中,可以攫取到其他事务未提交的变革

    2. read committed(RC)读已提交:

    事务的原子性是指事务中包含的所有操作要么都做,要么都不做,包管数据库是一致的

    Innodb 四大年夜 IO 线程:write thread,read thread,insert buffer thread,redo log thread

    一个事务中,可以攫取到其他事务已经提交的变革

    3. repetable read,(RR)可反复读:

    一个事务中,直到事务停止前,都可以反复攫取到事务刚开端看到的数据,不会产生变更

    4. serializable(串行读):

    即便每次读都须要获得表级共享锁,每次写都加表级排它锁,两个会话间读写会互相壅塞。

    小我建议:对于交易类体系的网站,大年夜家尽量应用事务级别比较高的RR;对于一些门户类网站大年夜家应用RC就可以了。

    Innodb 的锁,默认三种锁算法:

    • record;
    • Gap lock;
    • next-key lock

    默认锁算法是 next-key lock 间隙锁包管不会出现幻读现象。

    数据库字符集

    1. [root@node3 ~]# mysql -uroot -proot123 
    2. mysql> show variables like '%char%'
    3. +--------------------------+----------------------------------+ 
    4. | Variable_name            | Value                            | 

        推荐阅读

        混合云为什么很少落地?挑战有哪些?

      回想以前几年,混淆云在IT界异军崛起。据很多行业分析师的不雅点,混淆云意味着将组织软件驱动的私有云与公共云的机能、营业流程、主动化和计费功能相结合,以实如今公有云和私有云之间无>>>详细阅读


      本文标题:青铜到王者,快速提升你MySQL数据库的段位!

      地址:http://www.17bianji.com/lsqh/37072.html

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)