Table of Contents
回复内容:
Home Backend Development PHP Tutorial mysql表类型MyISAM,InnoDB实际中怎么选择?

mysql表类型MyISAM,InnoDB实际中怎么选择?

Jun 06, 2016 pm 08:36 PM
innodb myisam mysql php

MyISAM,InnoDB的区别优劣网上都说的很清楚了,但在实际中不知道该怎么去用。

之前问过这个问题,但可能说的不是很详细,http://segmentfault.com/q/1010000002600161

我想知道大家在“商城”、“商品表”、“订单”、“库存”,实际中项目中是怎么去设计表类型的呢,或者是怎么保证数据完整性的呢,事务,事务隔离级别……

例如支付宝如果使用mysql的话,那么它的表是怎么设计的呢,怎么严密保证数据的完整性呢?

或者大家知不知道有哪些关于这方面的比较经典的案列呢。

谢谢大家了!

回复内容:

MyISAM,InnoDB的区别优劣网上都说的很清楚了,但在实际中不知道该怎么去用。

之前问过这个问题,但可能说的不是很详细,http://segmentfault.com/q/1010000002600161

我想知道大家在“商城”、“商品表”、“订单”、“库存”,实际中项目中是怎么去设计表类型的呢,或者是怎么保证数据完整性的呢,事务,事务隔离级别……

例如支付宝如果使用mysql的话,那么它的表是怎么设计的呢,怎么严密保证数据的完整性呢?

或者大家知不知道有哪些关于这方面的比较经典的案列呢。

谢谢大家了!

mysql表类型MyISAM,InnoDB实际中怎么选择?

针对具体情况选择,像楼主说的这几种,实际中多选择innoDB

要速度快用myisam,要数据安全用innodb,要折腾要B格高用postgrelsql.

最好用innodb 因为支持事务回滚

如果忽略业务数据的一致性问题,只是往表里灌数据,那MyISAM会比InnoDB爽得多。
但实际项目中这种例子并不多,而不使用事务操作的话,存储方面我还有很多选择。

另外想想这样的场景,就是MySQL主从时主库用InnoDB从库用MyISAM,这样做读写分离会不会好一点?
但如果要搞主库选举切换的话,这样搞反而碍事了。

另外有全文索引的问题,版本是5.7的话可以试试http://dev.mysql.com/doc/refman/5.7/en/full-text-plugins.html

看了下几个回复简直不忍直视。。。各种误人子弟啊。
把事务作为使用它们的区别,这是非常片面的。还有完全错误的答案:“Myisam类型的好处是增 删 改的效率比innodb高。”
这么说吧,如果你要事务,myisam就被pass了。
另一个重要区别:表级锁和行级锁。myisam是表锁的,意味这你insert、update、delete一条记录整个表就被锁了,谁的写操作效率高??上面的答案我真是汗爆了。
mysiam在存储上索引和data分开,空间占用小。但表损坏不能恢复数据。
一句话,mysiam适合读多写少的应用,且对数据一致性恢复性要求不高。
一般情况下,web应用都用innodb

如果你的项目中不需要事物操作,那么就用Myisam,否则就用innodb,Myisam类型的好处是增 删 改的效率比innodb高。

InnoDB存储引擎提供了具有提交,回滚和崩溃恢复能力的事务安全。对比MyISAM的存储引擎,InnoDB写的处理效率差一些,并且会占用更多的磁盘空间以保留数据和索引。
MyISAM:主要以读操作和插入操作为主,只是很少的更新和删除操作,并且对事务的完整性,并发性要求不高,选择这个存储引擎比较合适。还是在web、数据仓储和其他应用环境下最常用的的存储引擎之一。
InnoDB:用于事务处理应用程序,支持外键。如果应用对事务的完整性有比较高的要求,在并发条件下要求数据一致性,数据操作除了插入和查询以外,还包括很多更新,删除操作,那么InnoDB应该是比较适合的选择。

innodb吧 它支持事务操作

mysql5.5版本建表默认都使用InnoDB了,所以建议使用InnoDB,MyIsam可以说是历史要慢慢被淡出

虽说InnoDB,MyIsam各有优劣,曾经我也为做这个选择而纠结,但现实中一般自己做的小项目体现不出他俩的区别,而公司的项目会有专门的DBA(小公司除外),如果你要做这个选择没有特殊原因选择InnoDB的,未来的趋势

也就是说大家还是说要用InnoDB是吧

其实和你的业务还是有很大的关系的.
如果你的业务和钱有关系,那么最好就是InnoDB.
我的公司都是以资讯内容为主,当时也在选择引擎的时候犯难,最后我们直接拿几百万的数据来测试,发现还是MyIsam比较合适,当时的测试版本是5.5的

我们公司一开始用的MyIsam做人口系统,因为数据清洗与迁移方便,但是在后期中出现的锁表问题很头疼,就换成了InnoDB,仅供参考

目前工作都没有遇到使用mysiam建表的,innodb是主流。如果是读多写少的场景,可以用redis等nosql来做更适合。

时至今日,不用想了,myisam和innodb比没有任何优势,

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
2 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Repo: How To Revive Teammates
1 months ago By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: How To Get Giant Seeds
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 brings several new features, security improvements, and performance improvements with healthy amounts of feature deprecations and removals. This guide explains how to install PHP 8.4 or upgrade to PHP 8.4 on Ubuntu, Debian, or their derivati

How to fix mysql_native_password not loaded errors on MySQL 8.4 How to fix mysql_native_password not loaded errors on MySQL 8.4 Dec 09, 2024 am 11:42 AM

One of the major changes introduced in MySQL 8.4 (the latest LTS release as of 2024) is that the "MySQL Native Password" plugin is no longer enabled by default. Further, MySQL 9.0 removes this plugin completely. This change affects PHP and other app

How To Set Up Visual Studio Code (VS Code) for PHP Development How To Set Up Visual Studio Code (VS Code) for PHP Development Dec 20, 2024 am 11:31 AM

Visual Studio Code, also known as VS Code, is a free source code editor — or integrated development environment (IDE) — available for all major operating systems. With a large collection of extensions for many programming languages, VS Code can be c

How do you parse and process HTML/XML in PHP? How do you parse and process HTML/XML in PHP? Feb 07, 2025 am 11:57 AM

This tutorial demonstrates how to efficiently process XML documents using PHP. XML (eXtensible Markup Language) is a versatile text-based markup language designed for both human readability and machine parsing. It's commonly used for data storage an

PHP Program to Count Vowels in a String PHP Program to Count Vowels in a String Feb 07, 2025 pm 12:12 PM

A string is a sequence of characters, including letters, numbers, and symbols. This tutorial will learn how to calculate the number of vowels in a given string in PHP using different methods. The vowels in English are a, e, i, o, u, and they can be uppercase or lowercase. What is a vowel? Vowels are alphabetic characters that represent a specific pronunciation. There are five vowels in English, including uppercase and lowercase: a, e, i, o, u Example 1 Input: String = "Tutorialspoint" Output: 6 explain The vowels in the string "Tutorialspoint" are u, o, i, a, o, i. There are 6 yuan in total

7 PHP Functions I Regret I Didn't Know Before 7 PHP Functions I Regret I Didn't Know Before Nov 13, 2024 am 09:42 AM

If you are an experienced PHP developer, you might have the feeling that you’ve been there and done that already.You have developed a significant number of applications, debugged millions of lines of code, and tweaked a bunch of scripts to achieve op

Top 10 PHP CMS Platforms For Developers in 2024 Top 10 PHP CMS Platforms For Developers in 2024 Dec 05, 2024 am 10:29 AM

CMS stands for Content Management System. It is a software application or platform that enables users to create, manage, and modify digital content without requiring advanced technical knowledge. CMS allows users to easily create and organize content

How to Add Elements to the End of an Array in PHP How to Add Elements to the End of an Array in PHP Feb 07, 2025 am 11:17 AM

Arrays are linear data structures used to process data in programming. Sometimes when we are processing arrays we need to add new elements to the existing array. In this article, we will discuss several ways to add elements to the end of an array in PHP, with code examples, output, and time and space complexity analysis for each method. Here are the different ways to add elements to an array: Use square brackets [] In PHP, the way to add elements to the end of an array is to use square brackets []. This syntax only works in cases where we want to add only a single element. The following is the syntax: $array[] = value; Example

See all articles